diff --git a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/models/ModelGroup.java b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/models/ModelGroup.java
index c845e88..8a8e5d1 100644
--- a/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/models/ModelGroup.java
+++ b/plugins/org.eclipse.epsilon.eol.engine/src/org/eclipse/epsilon/eol/models/ModelGroup.java
@@ -57,13 +57,19 @@
 	}
 
 	public Object getEnumerationValue(String enumeration, String label) throws EolEnumerationValueNotFoundException {
-		return models.get(0).getEnumerationValue(enumeration,label);
+		for (IModel model : models) {
+			try {
+				return model.getEnumerationValue(enumeration,label);
+			}
+			catch (Exception ex) {}
+		}
+		throw new EolEnumerationValueNotFoundException(enumeration, label, this.getName());
 	}
 
 	public Collection<?> getAllOfType(String metaClass) throws EolModelElementTypeNotFoundException {
 		ArrayList<Object> allOfClass = new ArrayList<Object>();
 		for (IModel model : models) {
-			allOfClass.addAll(model.getAllOfType(metaClass));
+			if (model.hasType(metaClass)) allOfClass.addAll(model.getAllOfType(metaClass));
 		}
 		return allOfClass;
 	}
@@ -71,7 +77,7 @@
 	public Collection<?> getAllOfKind(String metaClass) throws EolModelElementTypeNotFoundException {
 		ArrayList<Object> allOfType = new ArrayList<Object>();
 		for (IModel model : models) {
-			allOfType.addAll(model.getAllOfKind(metaClass));
+			if (model.hasType(metaClass)) allOfType.addAll(model.getAllOfKind(metaClass));
 		}
 		return allOfType;
 	}
