diff --git a/LineNodes.py b/LineNodes.py
index 20338426a2c6dfafa0f6e43120f470d14fc4f8ed..be572513acf7298856bd71447d9e0e6932e9da1f 100644
--- a/LineNodes.py
+++ b/LineNodes.py
@@ -111,7 +111,7 @@ class BlockNode(ASTNode):
 # 1. variableDcl type ID
 # 2. variableDcl type ID ASSIGN variableInit
 class VarDclNode(ASTNode):
-    def __init__(self, parseTree, typeName, checkAssign=False):
+    def __init__(self, parseTree, typeName, checkAssign=False, isField=None):
         self.parseTree = parseTree
         self.dclType = None
         self.name = None # variable name
@@ -119,6 +119,7 @@ class VarDclNode(ASTNode):
         self.env = None
         self.children = []
         self.typeName = typeName
+        self.isField = isField
 
         self.dclType = TypeNode(parseTree.children[0], typeName)
         self.name = parseTree.children[1].lex
diff --git a/MemberNodes.py b/MemberNodes.py
index 78472385adf9d50546abb66b7bd29abf3cdaaeb5..671559bb9290d3ca3fcd36668bf2902d5e755cc9 100644
--- a/MemberNodes.py
+++ b/MemberNodes.py
@@ -26,7 +26,7 @@ class FieldNode(ASTNode):
                     self.mods.append(m.lex)
 
             elif node.name == 'variableDcl':
-                self.variableDcl = VarDclNode(node, self.typeName)
+                self.variableDcl = VarDclNode(node, self.typeName, isField=self)
 
         self.name = self.variableDcl.name
         self.myType = self.variableDcl.myType
@@ -357,7 +357,7 @@ def getNameNodes(node):
 # Output: A list of local var dcl to be pushed onto the stack
 def getVarDclNodes(node):
     result = []
-    
+
     if node.__class__.__name__ == 'VarDclNode':
         return [node]
     elif node.__class__.__name__ == 'BlockNode':
diff --git a/codeGenNodes.py b/codeGenNodes.py
index 828dc5bd2a13dc32f6d11b36c4b56bf8cbf310d8..f5ae3c8781f24e4bd435f36f3dda564e48bb0364 100644
--- a/codeGenNodes.py
+++ b/codeGenNodes.py
@@ -20,7 +20,13 @@ class genNameNode():
             self.code += p("add", "eax", 4)
             self.code +=  p("mov", "eax", "[eax]")
         elif self.nodeLink.__class__.__name__ == "VarDclNode":
-            self.code = p("mov", "eax", "[ebp - " + str(self.nodeLink.offset) + "]")
+            if self.nodeLink.isField :
+                self.code = p("mov", "eax", "[ebp + 8]")
+                self.code += p("call", "H__Null_Check")
+                self.code += p("add", "eax", self.nodeLink.isField.offset)
+                self.code +=  p("mov", "eax", "[eax]")
+            else:
+                self.code = p("mov", "eax", "[ebp - " + str(self.nodeLink.offset) + "]")
         elif self.nodeLink.__class__.__name__ == "ParamNode":
             self.code = p("mov", "eax", "[ebp + " + str(self.nodeLink.offset) + "]")
         elif self.nodeLink.__class__.__name__ == "FieldNode":
@@ -47,15 +53,20 @@ class genNameNode():
             result += p("call", "H__Null_Check")
             result += p("add", "eax", 4)
         elif self.nodeLink.__class__.__name__ == "VarDclNode":
-            result = p("mov", "eax", "ebp")
-            result += p("sub", "eax", str(self.nodeLink.offset))
+            if self.nodeLink.isField :
+                result = p("mov", "eax", "[ebp + 8]")
+                result += p("call", "H__Null_Check")
+                result += p("add", "eax", self.nodeLink.isField.offset)
+            else:
+                result = p("mov", "eax", "ebp")
+                result += p("sub", "eax", str(self.nodeLink.offset))
         elif self.nodeLink.__class__.__name__ == "ParamNode":
             result = p("mov", "eax", "ebp")
             result += p("add", "eax", str(self.nodeLink.offset))
         elif self.nodeLink.__class__.__name__ == "FieldNode":
             if self.isStatic:
                 label = self.nodeLink.typeName + "_" + self.nodeLink.name
-                self.code += importHelper(self.nodeLink.typeName, self.typeName, "S_"+label) + \
+                result += importHelper(self.nodeLink.typeName, self.typeName, "S_"+label) + \
                             p("mov", "eax", "dword S_"+label)
             else:
                 # object will already be in eax