diff --git a/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java b/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java
index ce19784..c22c576 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java
+++ b/plugins/org.eclipse.m2m.qvt.oml/src/org/eclipse/m2m/internal/qvt/oml/blackbox/java/Java2QVTTypeResolver.java
@@ -293,15 +293,16 @@
 			Iterator<ETypeParameter> typeParameters = rawClassifier.getETypeParameters().iterator();
 					
 			for (Type argumentType : type.getActualTypeArguments()) {
-				if (argumentType instanceof Class<?>) {
-					EClassifier argumentClassifier = lookupByInstanceClass((Class<?>) argumentType, relationship);
+				EClassifier argumentClassifier = toEClassifier(argumentType, relationship);
 								
-					if (argumentClassifier != null && typeParameters.hasNext()) {					
-						ETypeParameter typeParameter = typeParameters.next();
-						for (EGenericType genericType : typeParameter.getEBounds()) {
-							EClassifier genericClassifier = genericType.getEClassifier();
-							Class<?> genericInstanceClass = genericClassifier.getInstanceClass();
-							
+				if (argumentClassifier != null && typeParameters.hasNext()) {					
+					ETypeParameter typeParameter = typeParameters.next();
+					
+					for (EGenericType genericType : typeParameter.getEBounds()) {
+						EClassifier genericClassifier = genericType.getEClassifier();
+						Class<?> genericInstanceClass = genericClassifier.getInstanceClass();
+						
+						if (argumentType instanceof Class<?>) {
 							if ((relationship & ALLOW_SUBTYPE) == ALLOW_SUBTYPE) {
 								if(!isAssignableFromTo((Class<?>) argumentType, genericInstanceClass)) {
 									return null;
