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 9a48129..c5c67cf 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 2004/06/23 20:34:41 khussey Exp $
+ * $Id: SupersetEObjectEList.java,v 1.3.2.1 2004/09/01 19:02:49 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;
@@ -123,13 +124,29 @@
 	/*
 	 * (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) {
+		notifications = super.basicSet(index, object, notifications);
 
-		subsetRemove(oldObject);
+		subsetRemove(object);
+
+		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);
+
+		subsetRemove(object);
+
+		return result;
 	}
 
 }
\ No newline at end of file
