diff --git a/org.eventb.texteditor.feature/feature.xml b/org.eventb.texteditor.feature/feature.xml
index 6bfea24008aed25ef12ca7871a6c2d1a41a1e2ab..abf50fba6752049c90d40d82c2074f6c0cd4b328 100644
--- a/org.eventb.texteditor.feature/feature.xml
+++ b/org.eventb.texteditor.feature/feature.xml
@@ -9,6 +9,7 @@
    <description>
       A text editor for the Rodin platform to edit Event-B models
 --- Release History ---
+3.5.1 - Fix "Empty label" error when adding a variant to a machine
 3.5.0 - Compatibility with EventB-EMF 7.0.0 - fixes CamilleX dependency conflict. Fixed OOM error when top-level end keyword is missing.
 3.4.1 - Internal updates to the build process - no visible changes.
 3.4.0 - Release for Rodin 3.5 and related dependencies
diff --git a/org.eventb.texteditor.ui/META-INF/MANIFEST.MF b/org.eventb.texteditor.ui/META-INF/MANIFEST.MF
index a87e4f9719363cef7f38cd466b16f0cd0cd6bd42..80143c75d5668947bb7f0d860d26e63c2c2ad8fd 100644
--- a/org.eventb.texteditor.ui/META-INF/MANIFEST.MF
+++ b/org.eventb.texteditor.ui/META-INF/MANIFEST.MF
@@ -16,9 +16,9 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.8.1,4.0.0)",
  org.eclipse.ui.workbench.texteditor,
  org.eventb.core;bundle-version="[3.1.0,4.0.0)",
  org.eventb.core.ast;bundle-version="[3.1.0,4.0.0)",
- org.eventb.emf.core;bundle-version="[4.0.0,7.0.0)",
- org.eventb.emf.formulas;bundle-version="[1.4.0,3.0.0)",
- org.eventb.emf.persistence;bundle-version="[3.1.1,5.0.0)";visibility:=reexport,
+ org.eventb.emf.core;bundle-version="[5.0.0,7.0.0)",
+ org.eventb.emf.formulas;bundle-version="[1.5.0,3.0.0)",
+ org.eventb.emf.persistence;bundle-version="[3.6.0,5.0.0)";visibility:=reexport,
  org.eventb.texteditor.parsers;bundle-version="[3.5.1,3.6.0)",
  org.eventb.texttools;bundle-version="[3.5.1,3.6.0)";visibility:=reexport,
  org.eventb.ui;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
diff --git a/org.eventb.texttools/META-INF/MANIFEST.MF b/org.eventb.texttools/META-INF/MANIFEST.MF
index 8e0ddf314a590a6071fd6dfe5c82a7397be09915..ed60264e4240178724dad1870cdd7165ebe964ba 100644
--- a/org.eventb.texttools/META-INF/MANIFEST.MF
+++ b/org.eventb.texttools/META-INF/MANIFEST.MF
@@ -15,9 +15,9 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.8.1,4.0.0)",
  org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)",
  org.eventb.core;bundle-version="[3.1.0,4.0.0)",
  org.eventb.core.ast;bundle-version="[3.1.0,4.0.0)",
- org.eventb.emf.core;bundle-version="[4.0.0,7.0.0)",
- org.eventb.emf.formulas;bundle-version="[1.4.0,3.0.0)",
- org.eventb.emf.persistence;bundle-version="[3.1.1,5.0.0)",
+ org.eventb.emf.core;bundle-version="[5.0.0,7.0.0)",
+ org.eventb.emf.formulas;bundle-version="[1.5.0,3.0.0)",
+ org.eventb.emf.persistence;bundle-version="[3.6.0,5.0.0)",
  org.eventb.texteditor.parsers;bundle-version="[3.5.1,3.6.0)",
  org.rodinp.core;bundle-version="[1.7.0,2.0.0)"
 Bundle-Vendor: Heinrich-Heine University Dusseldorf
diff --git a/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java b/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java
index 4e034fc6d01f20f3adfa3122146aee86778c4e25..7e7c9d70b418b843e46058ae15bfc54e88b3bb94 100644
--- a/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java
+++ b/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java
@@ -11,29 +11,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Stack;
 
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eventb.emf.core.EventBCommented;
-import org.eventb.emf.core.EventBElement;
-import org.eventb.emf.core.EventBNamed;
-import org.eventb.emf.core.EventBNamedCommentedPredicateElement;
-import org.eventb.emf.core.EventBObject;
-import org.eventb.emf.core.context.Axiom;
-import org.eventb.emf.core.context.Context;
-import org.eventb.emf.core.context.ContextFactory;
-import org.eventb.emf.core.machine.Action;
-import org.eventb.emf.core.machine.Convergence;
-import org.eventb.emf.core.machine.Event;
-import org.eventb.emf.core.machine.Guard;
-import org.eventb.emf.core.machine.Invariant;
-import org.eventb.emf.core.machine.Machine;
-import org.eventb.emf.core.machine.MachineFactory;
-import org.eventb.emf.core.machine.Variant;
-import org.eventb.texttools.TextPositionUtil;
-import org.eventb.texttools.model.texttools.TextRange;
-import org.eventb.texttools.model.texttools.TexttoolsFactory;
-
 import de.be4.eventb.core.parser.analysis.DepthFirstAdapter;
 import de.be4.eventb.core.parser.node.AAction;
 import de.be4.eventb.core.parser.node.AAnticipatedConvergence;
@@ -67,6 +44,30 @@ import de.hhu.stups.sablecc.patch.IToken;
 import de.hhu.stups.sablecc.patch.PositionedNode;
 import de.hhu.stups.sablecc.patch.SourcePosition;
 
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eventb.core.IVariant;
+import org.eventb.emf.core.EventBCommented;
+import org.eventb.emf.core.EventBElement;
+import org.eventb.emf.core.EventBNamed;
+import org.eventb.emf.core.EventBNamedCommentedPredicateElement;
+import org.eventb.emf.core.EventBObject;
+import org.eventb.emf.core.context.Axiom;
+import org.eventb.emf.core.context.Context;
+import org.eventb.emf.core.context.ContextFactory;
+import org.eventb.emf.core.machine.Action;
+import org.eventb.emf.core.machine.Convergence;
+import org.eventb.emf.core.machine.Event;
+import org.eventb.emf.core.machine.Guard;
+import org.eventb.emf.core.machine.Invariant;
+import org.eventb.emf.core.machine.Machine;
+import org.eventb.emf.core.machine.MachineFactory;
+import org.eventb.emf.core.machine.Variant;
+import org.eventb.texttools.TextPositionUtil;
+import org.eventb.texttools.model.texttools.TextRange;
+import org.eventb.texttools.model.texttools.TexttoolsFactory;
+
 public class TransformationVisitor extends DepthFirstAdapter {
 
 	private IDocument document;
@@ -217,6 +218,9 @@ public class TransformationVisitor extends DepthFirstAdapter {
 		TextPositionUtil.annotatePosition(newNode, createTextRange(node));
 
 		handleComment(newNode, node.getComments());
+		// Work around an Event-B EMF bug that sets an explicit empty label and suppresses the default label.
+		// TODO Allow a label here in the Camille grammar?
+		newNode.setName(IVariant.DEFAULT_LABEL);
 
 		final TFormula exprToken = node.getExpression();
 		final String exprString = exprToken.getText();