diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java
index 8ce1971..e536725 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java
@@ -20,6 +20,7 @@
 import java.util.LinkedHashSet;
 import java.util.Objects;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
@@ -280,7 +281,8 @@
 			if (availableTemplates.size() > 1) {
 				// Don't show classes for which we don't have templates (bug 543461)
 				final Set<EClass> templateClasses = availableTemplates.stream()
-					.map(Template::getInstance).filter(Objects::nonNull).map(EObject::eClass)
+					.map(Template::getInstance).filter(Objects::nonNull).map(ignoreException(EObject::eClass))
+					.filter(Objects::nonNull)
 					.collect(Collectors.toSet());
 				subClasses.retainAll(templateClasses);
 
@@ -317,4 +319,17 @@
 			return wizard.getSelectedTemplate();
 		}
 	}
+
+	// CHECKSTYLE.OFF: IllegalCatch
+	private static <T, R> Function<T, R> ignoreException(Function<T, R> function) {
+		return t -> {
+			try {
+				return function.apply(t);
+			} catch (final Exception e) {
+				// ignore
+				return null;
+			}
+		};
+	}
+	// CHECKSTYLE.ON: IllegalCatch
 }
