diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
index a84c254..420f0a5 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
@@ -122,7 +122,7 @@
 				-->
 				<replacestring from="private static final int ADAPTING = 1 &lt;&lt; 7;" to="private boolean adapting;" />
 				<replacestring from="(eFlags &amp; ADAPTING) == 0" to="!adapting" />
-				<replacestring from="eFlags |= ADAPTING;" to="adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null &amp;&amp; !view.isClosed())) {" />
+				<replacestring from="eFlags |= ADAPTING;" to="adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null &amp;&amp; !view.isClosing())) {" />
 				<replacestring from="eFlags &amp;= ~ADAPTING;" to="adapting = false; }" />
 
 				<tokenfilter>
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
index e87eae0..8ba25a2 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
@@ -21,27 +21,18 @@
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-
 import org.eclipse.emf.common.util.DiagnosticChain;
-
 import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EAnnotation;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.EModelElementImpl;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.InternalEList;
-
 import org.eclipse.uml2.common.util.CacheAdapter;
 import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
-
 import org.eclipse.uml2.uml.Comment;
 import org.eclipse.uml2.uml.DirectedRelationship;
 import org.eclipse.uml2.uml.Element;
@@ -49,7 +40,6 @@
 import org.eclipse.uml2.uml.Relationship;
 import org.eclipse.uml2.uml.Stereotype;
 import org.eclipse.uml2.uml.UMLPackage;
-
 import org.eclipse.uml2.uml.internal.operations.ElementOperations;
 
 /**
@@ -912,7 +902,7 @@
 	public EList<Adapter> eAdapters() {
 
 		if (!adapting && !eBasicHasAdapters()) {
-			adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null && !view.isClosed())) {
+			adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || !view.isClosing()) {
 
 			CacheAdapter cacheAdapter = getCacheAdapter();
 
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java
index f88c027..d89063f 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java
@@ -211,7 +211,7 @@
 		List<EStructuralFeature.Setting> result = new ArrayList<EStructuralFeature.Setting>();
 		for (CDOObjectReference xref : view
 			.queryXRefs(Collections.singleton(cdoObject))) {
-			EReference sourceReference = (EReference) xref.getSourceFeature();
+			EReference sourceReference = xref.getSourceReference();
 			if (!nonNavigable || sourceReference.getEOpposite() == null) {
 				InternalCDOObject object = (InternalCDOObject) view
 					.getObject(xref.getSourceID());
