diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java
index d0763f8..804321a 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java
@@ -21,6 +21,7 @@
 import org.eclipse.ocl.pivot.CallExp;
 import org.eclipse.ocl.pivot.CollectionType;
 import org.eclipse.ocl.pivot.CompleteClass;
+import org.eclipse.ocl.pivot.LetExp;
 import org.eclipse.ocl.pivot.OCLExpression;
 import org.eclipse.ocl.pivot.Operation;
 import org.eclipse.ocl.pivot.OppositePropertyCallExp;
@@ -285,6 +286,9 @@
 		if (qvtpTypedElement instanceof VariableExp) {
 			return getNode(((VariableExp)qvtpTypedElement).getReferredVariable());
 		}
+		if (qvtpTypedElement instanceof LetExp) {
+			return getNode(((LetExp)qvtpTypedElement).getOwnedIn());
+		}
 		if (qvtpTypedElement instanceof OppositePropertyCallExp) {
 			OppositePropertyCallExp propertyCallExp = (OppositePropertyCallExp)qvtpTypedElement;
 			Node sourceNode = getNode(propertyCallExp.getOwnedSource());
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java
index 83a16b0..ce4e0c6 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java
@@ -39,6 +39,7 @@
 import org.eclipse.ocl.pivot.IterateExp;
 import org.eclipse.ocl.pivot.Iteration;
 import org.eclipse.ocl.pivot.IteratorExp;
+import org.eclipse.ocl.pivot.LetExp;
 import org.eclipse.ocl.pivot.MapLiteralExp;
 import org.eclipse.ocl.pivot.MapLiteralPart;
 import org.eclipse.ocl.pivot.MapType;
@@ -380,6 +381,14 @@
 		}
 
 		@Override
+		public @NonNull OCLExpression visitLetExp(@NonNull LetExp pLetExp) {
+			Variable asVariable = createVariable(ClassUtil.nonNull(pLetExp.getOwnedVariable()));
+			OCLExpression asInExpression = create(pLetExp.getOwnedIn());
+			assert asInExpression != null;
+			return helper.createLetExp(asVariable, asInExpression);
+		}
+
+		@Override
 		public @NonNull OCLExpression visitMapLiteralExp(@NonNull MapLiteralExp pMapLiteralExp) {
 			List<@NonNull MapLiteralPart> clonedParts = new ArrayList<@NonNull MapLiteralPart>();
 			for (@NonNull MapLiteralPart pPart : ClassUtil.nullFree(pMapLiteralExp.getOwnedParts())) {
