diff --git a/src/main/jastadd/analysis/Inheritance.jrag b/src/main/jastadd/analysis/Inheritance.jrag
new file mode 100644
index 0000000000000000000000000000000000000000..c9e6d01b8ca280292e9e43e766be0e99fa0d4d8e
--- /dev/null
+++ b/src/main/jastadd/analysis/Inheritance.jrag
@@ -0,0 +1,14 @@
+aspect Inheritance {
+
+  syn boolean EPackage.usesMultipleInheritance() {
+    for (EClass eClass : classes()) {
+      if (eClass.usesMultipleInheritance()) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  syn boolean EClass.usesMultipleInheritance() = getESuperTypeList().size() > 1;
+
+}
diff --git a/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java b/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java
index d2f4b6e401147da1500b5bc490236371015c1212..84a2ad5b99daac1af054c35ab097bf11b3587b77 100644
--- a/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java
+++ b/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java
@@ -59,9 +59,13 @@ class TransformationTest extends AbstractTest {
     for (EObject eObject : ePackages) {
       Assertions.assertTrue(eObject instanceof EPackage);
 
-      Grammar grammar = ((EPackage) eObject).getGrammar();
-      grammar.print(b);
-      b.append("\n\n");
+      if (((EPackage) eObject).usesMultipleInheritance()) {
+        logger.info("skipping package {}, since it uses multiple inheritance.", ((EPackage) eObject).getName());
+      } else {
+        Grammar grammar = ((EPackage) eObject).getGrammar();
+        grammar.print(b);
+        b.append("\n\n");
+      }
     }
 
     fileName = fileName.replaceFirst("\\.ecore$", ".relast");