diff --git a/TypeNodes.py b/TypeNodes.py
index 484e80c15685dac354c5d7dbe9c4b8a340bd4ee1..da61b931971c93d0bed08955eee270d5ecc01908 100644
--- a/TypeNodes.py
+++ b/TypeNodes.py
@@ -315,6 +315,9 @@ class ClassNode(ClassInterNode):
         self.data = "" # For writeable data section
         # print("This is the super class: {}".format(self.superClass))
 
+        if self.canonName == "java.lang.Object":
+            self.data += p("global", "I_SIT_" + self.name)
+
         # Generate class label
         self.label = pLabel(name=self.name, type="class")
         self.data += ";START OF CLASS MEMORY LAYOUT FOR CLASS: " + self.canonName + "\n"
@@ -405,18 +408,16 @@ class ClassNode(ClassInterNode):
         # fill in SIT
         self.code += "\n; Filling in SIT\n"
         self.code += p("mov", "eax", "I_SIT_spot_" + self.name)
-        if self.canonName == "java.lang.Object":
-            self.code += p("global", "I_SIT_" + self.name)
         self.code += p("mov", "[eax]", "dword I_SIT_" + self.name)
 
         for m in self.contains:
             if m.__class__.__name__ == "MethodNode":
                 sm = m.getTopReplace()
-                if sm != m and sm.isInterM:
-                    dlabel = "I_SIT_" + str(sm.methodOffset / 4)
+                if sm.typeName != m.typeName and sm.isInterM:
+                    dlabel = "I_SIT_" + str(sm.methodOffset // 4)
                     className = m.typeName
                     imLabel = "M_" + className + "_" + m.name + "_" + m.paramTypes
-                    if className != self.typeName:
+                    if className != self.name:
                         self.code += p("extern", imLabel)
                     self.code += p("mov", "eax", dlabel)
                     self.code += p("mov", "[eax]", "dword " + imLabel)