diff --git a/pykd/pytypedvar.cpp b/pykd/pytypedvar.cpp
index 6cc3f70..0060436 100644
--- a/pykd/pytypedvar.cpp
+++ b/pykd/pytypedvar.cpp
@@ -75,7 +75,11 @@ python::list TypedVarAdapter::getFields( kdlib::TypedVar& typedVar )
         for ( size_t i = 0; i < typedVar.getElementCount(); ++i )
         {
             std::wstring  name = typedVar.getElementName(i);
-            kdlib::MEMOFFSET_32  offset = typedVar.getElementOffset(i);
+            kdlib::MEMOFFSET_32  offset = 0;
+
+            if (!typedVar.getType()->isStaticMember(i) )
+                offset = typedVar.getElementOffset(i);
+
             kdlib::TypedVarPtr  val = typedVar.getElement(i);
 
             lst.push_back( FieldTuple( name, offset, val ) );
diff --git a/test/scripts/typedvar.py b/test/scripts/typedvar.py
index 4e58a66..481f7a6 100644
--- a/test/scripts/typedvar.py
+++ b/test/scripts/typedvar.py
@@ -325,3 +325,7 @@ class TypedVarTest( unittest.TestCase ):
 
         self.assertTrue( tv.getDebugStart() >= tv.getAddress() )
         self.assertTrue( tv.getDebugEnd() <= tv.getAddress() + tv.sizeof() )
+
+    def testFields(self):
+        tv = pykd.typedVar( "g_classChild")
+        self.assertTrue( len(tv.fields())>0 )