[514624] Tweaking processing of duplicate feature inheritance.
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 3e9a153..42b8431 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
@@ -10,7 +10,7 @@
  *   Kenn Hussey (Embarcadero Technologies) - 199624, 184249, 204406, 208125, 204200, 213218, 213903, 220669, 208016, 226396, 271470
  *   Nicolas Rouquette (JPL) - 260120, 313837
  *   Kenn Hussey - 286329, 313601, 314971, 344907, 236184, 335125
- *   Kenn Hussey (CEA) - 327039, 358792, 364419, 366350, 307343, 382637, 273949, 389542, 389495, 316165, 392833, 399544, 322715, 163556, 212765, 397324, 204658, 408612, 411731, 269598, 422000, 416833, 424568, 427167, 418466, 419324, 429994, 433157, 439915, 446388, 454864, 458906, 461374, 463066, 468230, 481712, 491587, 495564, 512439, 512520, 514386
+ *   Kenn Hussey (CEA) - 327039, 358792, 364419, 366350, 307343, 382637, 273949, 389542, 389495, 316165, 392833, 399544, 322715, 163556, 212765, 397324, 204658, 408612, 411731, 269598, 422000, 416833, 424568, 427167, 418466, 419324, 429994, 433157, 439915, 446388, 454864, 458906, 461374, 463066, 468230, 481712, 491587, 495564, 512439, 512520, 514386, 514624
  *   Yann Tanguy (CEA) - 350402
  *   Christian W. Damus (CEA) - 392833, 251963, 405061, 409396, 176998, 180744, 403374, 416833, 420338, 405065, 431342
  *   E.D.Willink - 420338, 512439
@@ -6828,7 +6828,11 @@
 		protected void qualifyName(ENamedElement eNamedElement,
 				String qualifier) {
 			String name = eNamedElement.getName();
-			String qualifiedName = qualifier + '_' + name;
+			String qualifiedName = name
+				.startsWith(Extension.METACLASS_ROLE_PREFIX)
+					? Extension.METACLASS_ROLE_PREFIX + qualifier + '_' + name
+						.substring(Extension.METACLASS_ROLE_PREFIX.length())
+					: qualifier + '_' + name;
 
 			if (DEBUG) {
 				System.err.println("Qualified " //$NON-NLS-1$
@@ -7010,18 +7014,6 @@
 											}
 
 											qualifyName(mixinEOperation);
-
-											List<EObject> redefinedOperations = getEAnnotation(
-												mixinEOperation,
-												ANNOTATION__REDEFINES, true)
-												.getReferences();
-
-											if (!redefinedOperations
-												.contains(eOperation)) {
-
-												redefinedOperations
-													.add(eOperation);
-											}
 										} else if (OPTION__DISCARD
 											.equals(options
 												.get(OPTION__DUPLICATE_OPERATION_INHERITANCE))) {
@@ -7355,18 +7347,6 @@
 											}
 
 											qualifyName(mixinEStructuralFeature);
-
-											EList<EObject> redefinedFeatures = getEAnnotation(
-												mixinEStructuralFeature,
-												ANNOTATION__REDEFINES, true)
-												.getReferences();
-
-											if (!redefinedFeatures
-												.contains(eStructuralFeature)) {
-
-												redefinedFeatures
-													.add(eStructuralFeature);
-											}
 										} else if (OPTION__DISCARD
 											.equals(options
 												.get(OPTION__DUPLICATE_FEATURE_INHERITANCE))) {