diff --git a/deprecated/plugins/org.eclipse.uml2.resources/libraries/EcorePrimitiveTypes.library.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/libraries/EcorePrimitiveTypes.library.uml2
index f09ac98..631ed2b 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/libraries/EcorePrimitiveTypes.library.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/libraries/EcorePrimitiveTypes.library.uml2
@@ -7,7 +7,7 @@
     <eAnnotations xmi:id="_WsuWoK88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_WsuWoa88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
   </packageImport>
   <ownedMember xmi:type="uml:PrimitiveType" xmi:id="_OQomAK86EdieaYgxtVWN8Q" name="EBigDecimal"/>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/libraries/JavaPrimitiveTypes.library.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/libraries/JavaPrimitiveTypes.library.uml2
index f4dd3ff..3c776f4 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/libraries/JavaPrimitiveTypes.library.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/libraries/JavaPrimitiveTypes.library.uml2
@@ -7,7 +7,7 @@
     <eAnnotations xmi:id="_ZNwI8a88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_ZNwI8q88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
   </packageImport>
   <ownedMember xmi:type="uml:PrimitiveType" xmi:id="_TBfF4K86EdieaYgxtVWN8Q" name="boolean"/>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/libraries/UML2PrimitiveTypes.library.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/libraries/UML2PrimitiveTypes.library.uml2
index 9e31b7c..7361607 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/libraries/UML2PrimitiveTypes.library.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/libraries/UML2PrimitiveTypes.library.uml2
@@ -7,7 +7,7 @@
     <eAnnotations xmi:id="_hLjtAK88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_hLjtAa88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
   </packageImport>
   <ownedMember xmi:type="uml:PrimitiveType" xmi:id="_IXfBUK86EdieaYgxtVWN8Q" name="Boolean"/>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/metamodels/Ecore.metamodel.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/metamodels/Ecore.metamodel.uml2
index 8428718..c7bcb27 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/metamodels/Ecore.metamodel.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/metamodels/Ecore.metamodel.uml2
@@ -4,20 +4,20 @@
     <contents xmi:type="Complete_0:Complete__Metamodel" xmi:id="_jr6J4K88EdizLvaujP1w9Q"/>
   </eAnnotations>
   <packageImport xmi:id="_m8eNoa86EdiEh75YJ_3n8g">
-    <importedPackage href="pathmap://UML2_LIBRARIES/EcorePrimitiveTypes.library.uml2#_L8agoK86EdieaYgxtVWN8Q"/>
+    <importedPackage xmi:type="uml:Model" href="pathmap://UML2_LIBRARIES/EcorePrimitiveTypes.library.uml2#_L8agoK86EdieaYgxtVWN8Q"/>
   </packageImport>
   <packageImport xmi:type="uml:ProfileApplication" xmi:id="_jngyEK88EdizLvaujP1w9Q">
     <eAnnotations xmi:id="_jnzF8K88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_jn5MkK88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
   </packageImport>
   <packageImport xmi:type="uml:ProfileApplication" xmi:id="_jsk4QK88EdizLvaujP1w9Q">
     <eAnnotations xmi:id="_js9SwK88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_js9Swa88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
   </packageImport>
   <ownedMember xmi:type="uml:Class" xmi:id="_m8eNoq86EdiEh75YJ_3n8g" name="EAttribute">
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/metamodels/UML2.metamodel.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/metamodels/UML2.metamodel.uml2
index 51d067e..f95db9c 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/metamodels/UML2.metamodel.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/metamodels/UML2.metamodel.uml2
@@ -4,20 +4,20 @@
     <contents xmi:type="Complete_0:Complete__Metamodel" xmi:id="_o5aJgK88EdizLvaujP1w9Q"/>
   </eAnnotations>
   <packageImport xmi:id="_m8qbBK86EdiEh75YJ_3n8g">
-    <importedPackage href="pathmap://UML2_LIBRARIES/EcorePrimitiveTypes.library.uml2#_L8agoK86EdieaYgxtVWN8Q"/>
+    <importedPackage xmi:type="uml:Model" href="pathmap://UML2_LIBRARIES/EcorePrimitiveTypes.library.uml2#_L8agoK86EdieaYgxtVWN8Q"/>
   </packageImport>
   <packageImport xmi:type="uml:ProfileApplication" xmi:id="_osa2YK88EdizLvaujP1w9Q">
     <eAnnotations xmi:id="_outVYK88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_ou5ioK88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
   </packageImport>
   <packageImport xmi:type="uml:ProfileApplication" xmi:id="_o67zgK88EdizLvaujP1w9Q">
     <eAnnotations xmi:id="_o9Iy8K88EdizLvaujP1w9Q" source="attributes">
       <details xmi:id="_o9O5kK88EdizLvaujP1w9Q" key="version" value="0"/>
     </eAnnotations>
-    <importedPackage href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
     <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
   </packageImport>
   <ownedMember xmi:type="uml:PrimitiveType" xmi:id="_m8qbBa86EdiEh75YJ_3n8g" name="Integer" packageableElement_visibility="private"/>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Basic.profile.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Basic.profile.uml2
index d96a5a2..6235356 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Basic.profile.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Basic.profile.uml2
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_6mFRgK86Edih9-GG5afQ0g" name="Basic" metaclassReference="_9vHfAK86Edih9-GG5afQ0g _9vsGxK86Edih9-GG5afQ0g _9vyNYa86Edih9-GG5afQ0g _9v4UBa86Edih9-GG5afQ0g _9wEhQa86Edih9-GG5afQ0g _9wW1JK86Edih9-GG5afQ0g _9w1WRK86Edih9-GG5afQ0g">
+<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_6mFRgK86Edih9-GG5afQ0g" name="Basic" metaclassReference="_9vHfAK86Edih9-GG5afQ0g _9vsGxK86Edih9-GG5afQ0g _9vyNYa86Edih9-GG5afQ0g _9v4UBa86Edih9-GG5afQ0g _9wEhQa86Edih9-GG5afQ0g _9wW1JK86Edih9-GG5afQ0g _9w1WRK86Edih9-GG5afQ0g">
   <eAnnotations xmi:id="__Ka_YK86Edih9-GG5afQ0g" source="attributes">
     <details xmi:id="__K_nIK86Edih9-GG5afQ0g" key="version" value="0"/>
   </eAnnotations>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Complete.profile.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Complete.profile.uml2
index 2ae4132..c6f004a 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Complete.profile.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Complete.profile.uml2
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_M7pTkK87Edih9-GG5afQ0g" name="Complete" metaclassReference="_O1-5UK87Edih9-GG5afQ0g">
+<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_M7pTkK87Edih9-GG5afQ0g" name="Complete" metaclassReference="_O1-5UK87Edih9-GG5afQ0g">
   <eAnnotations xmi:id="_QHWakK87Edih9-GG5afQ0g" source="attributes">
     <details xmi:id="_QHchMK87Edih9-GG5afQ0g" key="version" value="0"/>
   </eAnnotations>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Ecore.profile.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Ecore.profile.uml2
index 2db1a3f..96fd619 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Ecore.profile.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Ecore.profile.uml2
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_siPt4K87Edi5QpYeY_yIpg" name="Ecore" metaclassReference="_urkx4K87Edi5QpYeY_yIpg _usJZo687Edi5QpYeY_yIpg _usVm4K87Edi5QpYeY_yIpg _usVm4a87Edi5QpYeY_yIpg _ush0IK87Edi5QpYeY_yIpg _usn6wK87Edi5QpYeY_yIpg _usuBYK87Edi5QpYeY_yIpg _us6OoK87Edi5QpYeY_yIpg _utA8Ua87Edi5QpYeY_yIpg _utHC9687Edi5QpYeY_yIpg">
+<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_siPt4K87Edi5QpYeY_yIpg" name="Ecore" metaclassReference="_urkx4K87Edi5QpYeY_yIpg _usJZo687Edi5QpYeY_yIpg _usVm4K87Edi5QpYeY_yIpg _usVm4a87Edi5QpYeY_yIpg _ush0IK87Edi5QpYeY_yIpg _usn6wK87Edi5QpYeY_yIpg _usuBYK87Edi5QpYeY_yIpg _us6OoK87Edi5QpYeY_yIpg _utA8Ua87Edi5QpYeY_yIpg _utHC9687Edi5QpYeY_yIpg">
   <eAnnotations xmi:id="_v8ws8K87Edi5QpYeY_yIpg" source="attributes">
     <details xmi:id="_v82zkK87Edi5QpYeY_yIpg" key="version" value="0"/>
   </eAnnotations>
diff --git a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Intermediate.profile.uml2 b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Intermediate.profile.uml2
index d335e21..d4a2a26 100644
--- a/deprecated/plugins/org.eclipse.uml2.resources/profiles/Intermediate.profile.uml2
+++ b/deprecated/plugins/org.eclipse.uml2.resources/profiles/Intermediate.profile.uml2
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_Cz7csK87Edih9-GG5afQ0g" name="Intermediate" metaclassReference="_FxmuwK87Edih9-GG5afQ0g _Fxs1YK87Edih9-GG5afQ0g _Fx5Cpa87Edih9-GG5afQ0g">
+<uml:Profile xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_Cz7csK87Edih9-GG5afQ0g" name="Intermediate" metaclassReference="_FxmuwK87Edih9-GG5afQ0g _Fxs1YK87Edih9-GG5afQ0g _Fx5Cpa87Edih9-GG5afQ0g">
   <eAnnotations xmi:id="_JtJ-UK87Edih9-GG5afQ0g" source="attributes">
     <details xmi:id="_JtQsAK87Edih9-GG5afQ0g" key="version" value="0"/>
   </eAnnotations>
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SupersetEObjectEList.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SupersetEObjectEList.java
index 1b91f20..480a505 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SupersetEObjectEList.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SupersetEObjectEList.java
@@ -8,11 +8,12 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: SupersetEObjectEList.java,v 1.3.2.2 2004/09/02 18:07:55 khussey Exp $
+ * $Id: SupersetEObjectEList.java,v 1.3.2.3 2004/09/07 19:47:12 khussey Exp $
  */
 package org.eclipse.uml2.internal.util;
 
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.InternalEObject;
@@ -120,13 +121,35 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.eclipse.emf.common.util.BasicEList#didSet(int, java.lang.Object,
-	 *      java.lang.Object)
+	 * @see org.eclipse.emf.common.notify.impl.NotifyingListImpl#basicSet(int,
+	 *      java.lang.Object, org.eclipse.emf.common.notify.NotificationChain)
 	 */
-	protected void didSet(int index, Object newObject, Object oldObject) {
-		super.didSet(index, newObject, oldObject);
+	public NotificationChain basicSet(int index, Object object,
+			NotificationChain notifications) {
+		Object oldObject = data[index];
 
-		subsetRemove(oldObject);
+		notifications = super.basicSet(index, object, notifications);
+
+		if (oldObject != object) {
+			subsetRemove(oldObject);
+		}
+
+		return notifications;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.util.List#set(int, java.lang.Object)
+	 */
+	public Object set(int index, Object object) {
+		Object result = super.set(index, object);
+
+		if (result != object) {
+			subsetRemove(result);
+		}
+
+		return result;
 	}
 
 }
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2Handler.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2Handler.java
index cee90cd..bb39c39 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2Handler.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2Handler.java
@@ -8,15 +8,20 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: UML2Handler.java,v 1.6.2.1 2004/07/14 15:24:42 khussey Exp $
+ * $Id: UML2Handler.java,v 1.6.2.2 2004/09/07 19:47:12 khussey Exp $
  */
 package org.eclipse.uml2.internal.util;
 
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
 import org.eclipse.emf.ecore.xmi.XMLHelper;
@@ -29,6 +34,8 @@
 public class UML2Handler
 	extends SAXXMIHandler {
 
+	protected final Map urisToProxies;
+
 	/**
 	 * Constructs a new UML2 handler for the specified resource with the
 	 * specified helper and options.
@@ -42,6 +49,8 @@
 	 */
 	public UML2Handler(XMLResource xmiResource, XMLHelper helper, Map options) {
 		super(xmiResource, helper, options);
+
+		urisToProxies = new HashMap();
 	}
 
 	/*
@@ -85,4 +94,37 @@
 			}
 		}
 	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.ecore.xmi.impl.XMLHandler#validateCreateObjectFromFactory(org.eclipse.emf.ecore.EFactory,
+	 *      java.lang.String, org.eclipse.emf.ecore.EObject,
+	 *      org.eclipse.emf.ecore.EStructuralFeature)
+	 */
+	protected EObject validateCreateObjectFromFactory(EFactory factory,
+			String typeName, EObject newObject, EStructuralFeature feature) {
+
+		if (null != newObject && newObject.eIsProxy()) {
+			URI proxyURI = ((InternalEObject) newObject).eProxyURI();
+
+			Map typeNamesToProxies = (Map) urisToProxies.get(proxyURI);
+
+			if (null == typeNamesToProxies) {
+				urisToProxies.put(proxyURI, typeNamesToProxies = new HashMap());
+			}
+
+			EObject proxy = (EObject) typeNamesToProxies.get(typeName);
+
+			if (null == proxy) {
+				typeNamesToProxies.put(typeName, proxy = newObject);
+			}
+
+			// canonicalize proxies
+			newObject = proxy;
+		}
+
+		return super.validateCreateObjectFromFactory(factory, typeName,
+			newObject, feature);
+	}
 }
\ No newline at end of file
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2ResourceFactoryImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2ResourceFactoryImpl.java
index 658ab37..a810e05 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2ResourceFactoryImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/UML2ResourceFactoryImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: UML2ResourceFactoryImpl.java,v 1.1.2.1 2004/07/14 16:02:16 khussey Exp $
+ * $Id: UML2ResourceFactoryImpl.java,v 1.1.2.2 2004/09/07 19:47:12 khussey Exp $
  */
 package org.eclipse.uml2.internal.util;
 
@@ -65,6 +65,8 @@
 			XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
 		resource.getDefaultSaveOptions().put(XMIResource.OPTION_USE_XMI_TYPE,
 			Boolean.TRUE);
+		resource.getDefaultSaveOptions().put(XMIResource.OPTION_SAVE_TYPE_INFORMATION,
+			Boolean.TRUE);
 
 		return resource;
 	}
