[397348] Eliminate duplicate union member types.
diff --git a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java
index 63123f0..db5f3ca 100644
--- a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java
+++ b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java
@@ -700,7 +700,14 @@
                 resolveSimpleTypeDefinition(theMemberTypeDefinition.getTargetNamespace(), theMemberTypeDefinition.getName());
               if ((forceResolve || newMemberTypeDefinition.getContainer() != null) && newMemberTypeDefinition != theMemberTypeDefinition)
               {
-                theMemberTypeDefinitions.set(newMemberTypeDefinition);
+                if (memberTypeDefinitions.contains(newMemberTypeDefinition))
+                {
+                  theMemberTypeDefinitions.remove();
+                }
+                else
+                {
+                  theMemberTypeDefinitions.set(newMemberTypeDefinition);
+                }
               }
             }
           }