diff --git a/ExprPrimaryNodes.py b/ExprPrimaryNodes.py
index 1d948a4b60aef56693a681b698fc91204ae5d62d..2fba479b1f0aaef3a1805c31a922fed38f1903e9 100644
--- a/ExprPrimaryNodes.py
+++ b/ExprPrimaryNodes.py
@@ -375,13 +375,9 @@ class ExprNode(ASTNode):
             if self.op in ['&&', '&', '|', '||', '!=', '==']:
                 self.myType = TypeStruct("boolean", None)
                 return
-        # Other Comparisons:
-        if self.op == 'instanceof':
-            self.myType = TypeStruct("boolean", None)
-            return
-            
+
         if self.left.myType.assignable(self.right.myType) or self.right.myType.assignable(self.left.myType):
-            if self.op == '==' or self.op == '!=':
+            if self.op == '==' or self.op == '!=' or self.op == 'instanceof':
                 self.myType = TypeStruct("boolean", None)
                 return
 
diff --git a/TheTypeNode.py b/TheTypeNode.py
index b75db2a86b18192e82e57e561001adb354f6e054..68b6988a09a97e179520f4eea7482e301f40b070 100644
--- a/TheTypeNode.py
+++ b/TheTypeNode.py
@@ -70,6 +70,9 @@ class TypeStruct():
                 return True
             return False
 
+        if right.isArray and self.name in ['java.lang.Object', 'java.lang.Cloneable', 'java.io.Serializable']:
+            return True
+
         return False
 
 # helper: get list of all super class/interface of a ClassInterNode