diff --git a/TypeNodes.py b/TypeNodes.py
index 1cf778f63414d9f64d5bc09ef2b31f7ec7edc52e..d5152a89f9509e74ac533971ff456350be7fcc47 100644
--- a/TypeNodes.py
+++ b/TypeNodes.py
@@ -160,7 +160,9 @@ class ClassNode(ClassInterNode):
 
         # 10. A class that contains (declares or inherits) any abstract methods must be abstract.
         for con in contains:
-            if 'abstract' in con.mods and 'abstract' not in self.mods:
+            if 'abstract' in con.mods and (not('abstract' in self.mods)):
+                raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method".format(self.name))
+            if (not con.body) and (not ('native' in con.mods)) and (not ('abstract' in self.mods)):
                 raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method".format(self.name))
 
     # hierarchy: string[]