diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java
index aade368..dc2a75c 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java
@@ -884,16 +884,30 @@
 			//				e.printStackTrace();
 			//			}
 		} else if (implementationClass != null) {
-			ClassLoader classLoader = asFunction.getClass().getClassLoader();
+			ClassNotFoundException cnfe = null;
+			Class<?> functionClass = null;
+			for (@NonNull ClassLoader classLoader : metamodelManager.getImplementationManager().getClassLoaders()) {
+				try {
+					functionClass = classLoader.loadClass(implementationClass);
+					cnfe = null;
+					break;
+				} catch (ClassNotFoundException e) {
+					if (cnfe == null) {
+						cnfe = e;
+					}
+				}
+			}
+			if (cnfe != null) {
+				throw new IllegalStateException("Load class failure for " + implementationClass + " in QVTiAS2CGVisitor.visitFunction()", cnfe);
+			}
+			assert functionClass != null;
+			//			ClassLoader classLoader = asFunction.getClass().getClassLoader();
 			Object implementationInstance;
 			try {
-				Class<?> functionClass = classLoader.loadClass(implementationClass);
 				Field implementationField = functionClass.getField("INSTANCE");
 				implementationInstance = implementationField.get(null);
 			}
-			catch (ClassNotFoundException e) {
-				throw new IllegalStateException("Load class failure for " + implementationClass + " in QVTiAS2CGVisitor.visitFunction()", e);
-			} catch (NoSuchFieldException e) {
+			catch (NoSuchFieldException e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 				throw new IllegalStateException(e);
