[463396] - CCE in DecorationNodeImpl.eSet (159)
diff --git a/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/evaluator/QvtOperationalEvaluationVisitorImpl.java b/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/evaluator/QvtOperationalEvaluationVisitorImpl.java
index e731586..e71d3dd 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/evaluator/QvtOperationalEvaluationVisitorImpl.java
+++ b/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/evaluator/QvtOperationalEvaluationVisitorImpl.java
@@ -1125,6 +1125,9 @@
     	// Wrap the result of the expression in an OperationCallResult object.
     	// This type breaks control flow, so the value arrives directly at its
     	// calling operation, where it is unwrapped again and returned.
+    	if (value instanceof OperationCallResult) {
+    		return value;
+    	}
 		return new OperationCallResult(value, getOperationalEvaluationEnv());
     }
     
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug463396/bug463396.qvto b/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug463396/bug463396.qvto
new file mode 100644
index 0000000..3525523
--- /dev/null
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/parserTestData/models/bug463396/bug463396.qvto
@@ -0,0 +1,17 @@
+modeltype ecore "strict" uses ecore('http://www.eclipse.org/emf/2002/Ecore');
+
+transformation bug463396();
+
+main() {
+	var v := object EClass{};
+	v.name := test();
+	assert fatal (v.name = 'foo');
+}
+
+helper test() : String {
+	return if true then
+		return switch {
+			case (true) 'foo';
+		}
+	endif
+}
diff --git a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java
index 6afca3a..72a7de0 100644
--- a/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java
+++ b/tests/org.eclipse.m2m.tests.qvt.oml/src/org/eclipse/m2m/tests/qvt/oml/transform/TransformTests.java
@@ -645,6 +645,7 @@
         		new FilesToFilesData("bug440514"), //$NON-NLS-1$
         		new FilesToFilesData("bug415024"), //$NON-NLS-1$
         		new FilesToFilesData("bug463395"), //$NON-NLS-1$
+        		new FilesToFilesData("bug463396"), //$NON-NLS-1$
         		};
     }