diff --git a/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF b/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF
index ac3285c4b21d9e182949a0d02f0dc213bc2e66db..683c9b0bb35f1c30aa0d32bd3fb6947eea611662 100644
--- a/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF
+++ b/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF
@@ -8,22 +8,8 @@ Require-Bundle: org.eclipse.core.runtime
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ClassPath: .,
  lib/eventbstruct-2.4.40.jar,
- lib/guava-14.0.1.jar,
  lib/jsr305-1.3.9.jar
-Export-Package: com.google.common.annotations,
- com.google.common.base,
- com.google.common.base.internal,
- com.google.common.cache,
- com.google.common.collect,
- com.google.common.eventbus,
- com.google.common.hash,
- com.google.common.io,
- com.google.common.math,
- com.google.common.net,
- com.google.common.primitives,
- com.google.common.reflect,
- com.google.common.util.concurrent,
- de.be4.eventb.core.parser,
+Export-Package: de.be4.eventb.core.parser,
  de.be4.eventb.core.parser.analysis,
  de.be4.eventb.core.parser.lexer,
  de.be4.eventb.core.parser.node,
diff --git a/org.eventb.texteditor.parsers/build.properties b/org.eventb.texteditor.parsers/build.properties
index 1697a12f5b2c454f6df6d062c5fd2ab34dfad7ca..0ddd378065f2cc9103c6aa571dc41afe1f75ff12 100644
--- a/org.eventb.texteditor.parsers/build.properties
+++ b/org.eventb.texteditor.parsers/build.properties
@@ -3,5 +3,4 @@ output.. = bin/
 bin.includes = META-INF/,\
                .,\
                lib/eventbstruct-2.4.40.jar,\
-               lib/guava-14.0.1.jar,\
                lib/jsr305-1.3.9.jar
diff --git a/org.eventb.texteditor.parsers/pom.xml b/org.eventb.texteditor.parsers/pom.xml
index 8e521589842227f6e804b1c3a41723802be977f2..8753b12a1f93c5d11abada8fcfbadc1ddf2ef421 100644
--- a/org.eventb.texteditor.parsers/pom.xml
+++ b/org.eventb.texteditor.parsers/pom.xml
@@ -13,11 +13,6 @@
 	<packaging>eclipse-plugin</packaging>
 
 	<dependencies>
-		<dependency>
-			<groupId>com.google.guava</groupId>
-			<artifactId>guava</artifactId>
-			<version>14.0.1</version>
-		</dependency>
 		<dependency>
 			<groupId>de.hhu.stups</groupId>
 			<artifactId>eventbstruct</artifactId>
diff --git a/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/LabelHelper.java b/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/LabelHelper.java
index 356732252c952ab3c05d315c82b9c34655eb74dd..d331143bcd754b0b1abf2e52ddac43cc7d122f2f 100644
--- a/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/LabelHelper.java
+++ b/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/LabelHelper.java
@@ -13,7 +13,6 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.jface.viewers.StyledString.Styler;
 import org.eventb.emf.core.EventBNamed;
-import com.google.common.base.Joiner;
 
 public class LabelHelper {
 
@@ -29,7 +28,7 @@ public class LabelHelper {
 	}
 
 	public static <T> String joinEList(final EList<T> parameters) {
-		return Joiner.on(", ").join(getAsStringList(parameters));
+		return String.join(", ", getAsStringList(parameters));
 	}
 
 	public static void appendAttrDelim(final StyledString result) {
diff --git a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java
index ea517c08d116dd5ac1d5fe7e7d3003ac5215ffdd..1995d9a982c5e068f0f6f5a61292e3f183fc620b 100644
--- a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java
+++ b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java
@@ -1,6 +1,8 @@
 package org.eventb.texttools.diffmerge;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -15,13 +17,8 @@ import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.xmi.XMIResource;
 import org.eventb.emf.core.EventBNamed;
-import org.eventb.emf.core.context.Context;
 import org.eventb.emf.core.machine.Variant;
 
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
 public class EventBEObjectMatcher implements IEObjectMatcher {
 	@Override
 	public void createMatches(Comparison comparison,
@@ -29,10 +26,12 @@ public class EventBEObjectMatcher implements IEObjectMatcher {
 			Iterator<? extends EObject> rightEObjects,
 			Iterator<? extends EObject> originEObjects, Monitor monitor) {
 
-		final Set<Match> matches = Sets.newLinkedHashSet();
+		final Set<Match> matches = new LinkedHashSet<>();
 
-		final List<EObject> rightCopy = Lists.newArrayList(rightEObjects);
-		final List<EObject> originCopy = Lists.newArrayList(originEObjects);
+		final List<EObject> rightCopy = new ArrayList<>();
+		rightEObjects.forEachRemaining(rightCopy::add);
+		final List<EObject> originCopy = new ArrayList<>();
+		originEObjects.forEachRemaining(originCopy::add);
 
 		// only two way merge in camille?!
 		assert (originCopy.isEmpty());
@@ -55,7 +54,7 @@ public class EventBEObjectMatcher implements IEObjectMatcher {
 			matches.add(match);
 		}
 
-		Iterables.addAll(comparison.getMatches(), matches);
+		comparison.getMatches().addAll(matches);
 	}
 
 	protected EObject findMatch(EObject left, List<EObject> rightCopy) {
diff --git a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/MyReferenceChangeMerger.java b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/MyReferenceChangeMerger.java
index 3db58f273af7efa58dd3530ead09179e6ee32cc3..9e68f5a9555767d5100a6d73ad6e985f2fe15518 100644
--- a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/MyReferenceChangeMerger.java
+++ b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/MyReferenceChangeMerger.java
@@ -11,16 +11,14 @@
  *******************************************************************************/
 package org.eventb.texttools.diffmerge;
 
-import static com.google.common.collect.Iterators.filter;
 import static org.eclipse.emf.compare.merge.IMergeCriterion.NONE;
 import static org.eclipse.emf.compare.utils.ReferenceUtil.safeEGet;
 import static org.eclipse.emf.compare.utils.ReferenceUtil.safeEIsSet;
 import static org.eclipse.emf.compare.utils.ReferenceUtil.safeESet;
 
-import com.google.common.collect.Iterators;
-
 import java.util.Iterator;
 import java.util.List;
+import java.util.stream.Stream;
 
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.compare.Comparison;
@@ -31,7 +29,6 @@ import org.eclipse.emf.compare.ReferenceChange;
 import org.eclipse.emf.compare.internal.utils.DiffUtil;
 import org.eclipse.emf.compare.merge.AbstractMerger;
 import org.eclipse.emf.compare.merge.IMergeCriterion;
-import org.eclipse.emf.compare.utils.IEqualityHelper;
 import org.eclipse.emf.compare.utils.ReferenceUtil;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
@@ -618,21 +615,19 @@ public class MyReferenceChangeMerger extends AbstractMerger {
 			mergedImplications = diff.getImpliedBy();
 		}
 
-		Iterator<Diff> impliedDiffs = mergedImplications.iterator();
+		Stream<Diff> impliedDiffs = mergedImplications.stream();
 		if (reference.isMany() && diff.getEquivalence() != null) {
-			impliedDiffs = Iterators.concat(impliedDiffs, diff.getEquivalence().getDifferences().iterator());
+			impliedDiffs = Stream.concat(impliedDiffs, diff.getEquivalence().getDifferences().stream());
 		}
-		final Iterator<ReferenceChange> impliedReferenceChanges = filter(impliedDiffs, ReferenceChange.class);
-
-		while (impliedReferenceChanges.hasNext()) {
-			final ReferenceChange implied = impliedReferenceChanges.next();
-			if (implied != diff && isInTerminalState(implied)) {
+		impliedDiffs.forEach(imp -> {
+			if (imp instanceof ReferenceChange && imp != diff && isInTerminalState(imp)) {
+				final ReferenceChange implied = (ReferenceChange)imp;
 				if (implied.getReference().isMany() && isAdd(implied, rightToLeft)) {
 					internalCheckOrdering(implied, rightToLeft);
 					checkImpliedDiffsOrdering(implied, rightToLeft);
 				}
 			}
-		}
+		});
 	}
 
 	/**