[314971] Ensuring package merge relationships are properly destroyed after a merge operation.
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java
index f342630..c3e19f2 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java
@@ -9,9 +9,9 @@
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 199624, 184249, 204406, 208125, 204200, 213218, 213903, 220669, 208016, 226396, 271470
  *   Nicolas Rouquette (JPL) - 260120, 313837
- *   Kenn Hussey - 286329, 313601
+ *   Kenn Hussey - 286329, 313601, 314971
  *
- * $Id: UMLUtil.java,v 1.87 2010/05/26 15:54:18 khussey Exp $
+ * $Id: UMLUtil.java,v 1.88 2010/05/31 20:24:36 khussey Exp $
  */
 package org.eclipse.uml2.uml.util;
 
@@ -1991,7 +1991,13 @@
 			copyAll(mergedPackages);
 			copyReferences();
 
-			receivingPackage.getPackageMerges().clear();
+			for (Iterator<PackageMerge> packageMerges = receivingPackage
+				.getPackageMerges().iterator(); packageMerges.hasNext();) {
+
+				PackageMerge packageMerge = packageMerges.next();
+				packageMerges.remove();
+				packageMerge.destroy();
+			}
 
 			if (options != null) {
 				processOptions(options, diagnostics, context);