diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SubsetEObjectContainmentEList.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SubsetEObjectContainmentEList.java
index 7d83be0..5fb69f5 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SubsetEObjectContainmentEList.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/util/SubsetEObjectContainmentEList.java
@@ -8,10 +8,13 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: SubsetEObjectContainmentEList.java,v 1.3 2004/06/23 20:34:41 khussey Exp $
+ * $Id: SubsetEObjectContainmentEList.java,v 1.3.2.1 2004/11/25 12:16:03 khussey Exp $
  */
 package org.eclipse.uml2.internal.util;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.InternalEObject;
 
@@ -111,4 +114,22 @@
 		return true;
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.util.Collection#addAll(java.util.Collection)
+	 */
+	public boolean addAll(Collection collection) {
+		return super.addAll(new ArrayList(collection));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.util.List#addAll(int, java.util.Collection)
+	 */
+	public boolean addAll(int index, Collection collection) {
+		return super.addAll(index, new ArrayList(collection));
+	}
+
 }
\ No newline at end of file
