diff --git a/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java b/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java
index 87d6fb7f4339bed2e99ffa60a56dff9a71875350..36eb4f7f411da20884885b4a7ce911fcf419c96e 100644
--- a/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java
+++ b/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java
@@ -616,10 +616,8 @@ public class TranslationVisitor implements ISimpleVisitor {
 			// I've encountered null types. Maybe that was a bug but just to be
 			// sure (in most cases, missing type information won't hurt):
 			if (type != null) {
-				// put a translation of the identifier on the stack ...
-				decl.accept(this);
-				// ... and take it
-				final PExpression expr = expressions.pop();
+				final PExpression expr = createIdentifierExpression(decl
+						.getName());
 				// construct "expr:type"
 				final PPredicate member = new AMemberPredicate(expr,
 						translateType(type));