diff --git a/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java b/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java
index 2052cba..30cc2aa 100644
--- a/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java
+++ b/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java
@@ -48,9 +48,10 @@
 public abstract class OCLGenModelUtil
 {
 	public static @NonNull OCLGenModelUtil INSTANCE =
-			GenRuntimeVersion.get("2.17") != null ? new EMF_CodeGen_2_17() :
-			GenRuntimeVersion.get("2.16") != null ? new EMF_CodeGen_2_16() :
-			GenRuntimeVersion.get("2.14") != null ? new EMF_CodeGen_2_14() :
+			GenRuntimeVersion.get("2.25") != null ? new EMF_CodeGen_2_25() :			// 2021-03
+			GenRuntimeVersion.get("2.17") != null ? new EMF_CodeGen_2_17() :			// 2019-03
+			GenRuntimeVersion.get("2.16") != null ? new EMF_CodeGen_2_16() :			// 2018-12
+			GenRuntimeVersion.get("2.14") != null ? new EMF_CodeGen_2_14() :			// Photon
 			new EMF_CodeGen_Default();
 
 	public static final @NonNull String OCL_GENMODEL_COPY_AND_PASTE_URI = OCLinEcoreGenModelGeneratorAdapter.OCL_GENMODEL_URI + "/CopyAndPaste";
@@ -329,6 +330,7 @@
 	public abstract boolean hasAPIDeprecatedTag(GenBase genBase);
 	public abstract boolean hasAPIDeprecatedTag(Collection<?>... elements);
 	public abstract boolean hasAPITags(GenBase genBase);
+	public abstract boolean hasDoubleOverrideBug547424();
 	public abstract boolean hasImplicitAPITags(GenBase genBase);
 	public abstract boolean hasImplicitAPITags(GenBase genBase, boolean excludeOwnDocumentation);
 	public abstract boolean hasImplicitAPIDeprecatedTag(GenBase genBase);
@@ -394,6 +396,11 @@
 		}
 
 		@Override
+		public boolean hasDoubleOverrideBug547424() {
+			return false;
+		}
+
+		@Override
 		public boolean hasImplicitAPITags(GenBase genBase) {
 			return false;
 		}
@@ -493,6 +500,11 @@
 	private static class EMF_CodeGen_2_16 extends EMF_CodeGen_2_14
 	{
 		@Override
+		public boolean hasDoubleOverrideBug547424() {
+			return true;	// Pre 2018-12 there were no overrides at all.
+		}
+
+		@Override
 		public boolean useInterfaceOverrideAnnotation(GenModel genModel) {
 			return genModel.useInterfaceOverrideAnnotation();
 		}
@@ -509,4 +521,16 @@
 			return true;
 		}
 	}
+
+	/**
+	 * EMF_CodeGen_2_25 redirects GenModel facilities available in an EMF >= 2.25 platform to the
+	 * standard implementation.
+	 */
+	private static class EMF_CodeGen_2_25 extends EMF_CodeGen_2_17
+	{
+		@Override
+		public boolean hasDoubleOverrideBug547424() {
+			return false;			// Fixed in UML 5.6.0 for 2021-03
+		}
+	}
 }
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
index 9062007..6e184d5 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
@@ -1189,6 +1189,10 @@
 	 * Verify that the static profile in Bug570891.uml model can be generated and compiled.
 	 */
 	public void testBug570891_uml() throws Throwable {
+		if (OCLGenModelUtil.INSTANCE.hasDoubleOverrideBug547424()) {				// Avoid UML BUG 547424
+			System.err.println(getName() + " has been disabled -see UML Bug 547424");
+			return;
+		}
 		doTestRunnable(new TestRunnable() {
 			@Override
 			public void runWithThrowable() throws Exception {
