diff --git a/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java
index d7acce4..cb7e13b 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java
@@ -64,14 +64,14 @@
 	}
 
 	public @Nullable TypedRefCS createTypeRefCS(@NonNull TypedElement asTypedElement) {	// FIXME Bug 496810 promote to OCL
-		return createTypeRefCS(asTypedElement, false);
+		return createTypeRefCS(asTypedElement, null);
 	}
 
-	public @Nullable TypedRefCS createTypeRefCS(@NonNull TypedElement asTypedElement, boolean defaultIsRequired) {	// FIXME Bug 496810 promote to OCL
+	public @Nullable TypedRefCS createTypeRefCS(@NonNull TypedElement asTypedElement, @Nullable Boolean defaultIsRequired) {	// FIXME Bug 496810 promote to OCL
 		boolean isRequired = asTypedElement.isIsRequired();
 		Type asType = asTypedElement.getType();
 		TypedRefCS csTypeRef = createTypeRefCS(asType);
-		if ((csTypeRef != null) && (isRequired != defaultIsRequired)) {
+		if ((csTypeRef != null) && ((defaultIsRequired == null) ||  (isRequired != defaultIsRequired.booleanValue()))) {
 			if (!isRequired) {
 				MultiplicityStringCS csMultiplicity = BaseCSFactory.eINSTANCE.createMultiplicityStringCS();	// FIXME MultiplicityStringCS would be nicer but "1" is the default which confuses Xtext serialization
 				csMultiplicity.setStringBounds("?");
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java
index ada3386..d6df552 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java
@@ -363,7 +363,7 @@
 			TemplateExp templateExpression = asDomainPattern.getTemplateExpression();
 			VariableDeclaration rootVariable = templateExpression.getBindsTo();
 			csDomainPattern.setName(rootVariable.getName());
-			csDomainPattern.setOwnedType(createTypeRefCS(rootVariable, true));
+			csDomainPattern.setOwnedType(createTypeRefCS(rootVariable, null));
 			return csDomainPattern;
 		}
 		else {
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java
index cfa76ae..c5f1385 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java
@@ -209,9 +209,6 @@
 		if (pivotElement != null) {
 			Type type = PivotUtil.getPivot(Type.class, csElement.getOwnedType());
 			TemplateExp template = pivotElement.getTemplateExpression();
-			Variable rootVariable = template.getBindsTo();
-			assert rootVariable != null;
-			helper.setType(rootVariable, type, true);
 			if (template instanceof ObjectTemplateExp) {
 				((ObjectTemplateExp)template).setReferredClass((org.eclipse.ocl.pivot.Class)type);
 			}
