diff --git a/pykd/dbgext.cpp b/pykd/dbgext.cpp
index 47a698a..21bd08b 100644
--- a/pykd/dbgext.cpp
+++ b/pykd/dbgext.cpp
@@ -42,6 +42,7 @@ BOOST_PYTHON_MODULE( pykd )
     boost::python::def( "is64bitSystem", is64bitSystem );
     boost::python::def( "reg", &loadRegister );
     boost::python::def( "typedVar", &loadTypedVar );
+    boost::python::def( "typedVarList", &loadTypedVarList );
     boost::python::def( "containingRecord", &containingRecord );
     boost::python::def( "loadModule", &loadModule );
     boost::python::def( "findSymbol", &findSymbolForAddress );
diff --git a/pykd/dbgmem.cpp b/pykd/dbgmem.cpp
index 0959280..35a0525 100644
--- a/pykd/dbgmem.cpp
+++ b/pykd/dbgmem.cpp
@@ -137,27 +137,20 @@ loadPtrArray( ULONG64 address, ULONG  number )
 
 ///////////////////////////////////////////////////////////////////////////////////
 
-boost::python::object
+ULONG64
 loadPtrByPtr( ULONG64 address )
 {
+    ULONG64    value = 0;
+
     if ( is64bitSystem() )
-    {
-        ULONG64    value;
-        
-        if ( loadMemory( address, &value, sizeof(ULONG64) ) )
-            return   boost::python::object( value );
-   
- 	    return boost::python::object();    
-    }
+        loadMemory( address, &value, sizeof(ULONG64) );
     else
     {
-        ULONG   value;
-        
         if ( loadMemory( address, &value, sizeof(ULONG) ) )
-            return   boost::python::object( addr64( value ) );
-        
- 	    return boost::python::object();       
+              value = addr64( value );
     }
+    
+    return value;
 }
 
 ///////////////////////////////////////////////////////////////////////////////////
diff --git a/pykd/dbgmem.h b/pykd/dbgmem.h
index 6a6b35b..11cca1e 100644
--- a/pykd/dbgmem.h
+++ b/pykd/dbgmem.h
@@ -9,6 +9,10 @@
 bool
 loadMemory( ULONG64 address, PVOID dest, ULONG length );
 
+ULONG64
+loadPtrByPtr( ULONG64 address );
+
+
 template<typename T>
 boost::python::object
 loadArray( ULONG64 address, ULONG  number )
@@ -46,9 +50,6 @@ loadByPtr( ULONG64 address )
     return boost::python::object();
 }
 
-boost::python::object
-loadPtrByPtr( ULONG64 address );
-
 boost::python::object
 loadPtrArray( ULONG64 address, ULONG  number );
 
diff --git a/pykd/dbgtype.cpp b/pykd/dbgtype.cpp
index d0600e4..b8611c9 100644
--- a/pykd/dbgtype.cpp
+++ b/pykd/dbgtype.cpp
@@ -47,9 +47,13 @@ basicTypeNames[] = {
     "short", 
     "unsigned long",
     "long",
+    "int",
+    "unsigned int",
     "<function>",
     "void",
-    "double"
+    "double",
+    "int64",
+    "unsigned int64"
 };
     
 basicTypeLoader     basicTypeLoaders[] = {
@@ -59,9 +63,14 @@ basicTypeLoader     basicTypeLoaders[] = {
     valueLoader<short>,
     valueLoader<unsigned long>,
     valueLoader<long>,
+    valueLoader<int>,
+    valueLoader<unsigned int>,
     valueLoader<void*>,
     voidLoader,
-    valueLoader<double> };
+    valueLoader<double>,
+    valueLoader<__int64>,
+    valueLoader<unsigned __int64>
+     };
 
 ///////////////////////////////////////////////////////////////////////////////////
 //
@@ -104,6 +113,10 @@ loadTypedVar( const std::string &moduleName, const std::string &typeName, ULONG6
             char    fieldTypeName[100];
             hres = dbgExt->symbols->GetTypeName( moduleBase, fieldTypeId, fieldTypeName, sizeof(fieldTypeName), NULL );
             
+            std::string     fieldTypeNameStr( fieldTypeName );
+            if ( fieldTypeNameStr == "__unnamed"  ||  fieldTypeNameStr == "<unnamed-tag>" )
+                continue;                
+            
             ULONG   fieldSize;
             hres = dbgExt->symbols->GetTypeSize( moduleBase, fieldTypeId, &fieldSize );
             
@@ -183,6 +196,23 @@ containingRecord( ULONG64 address, const std::string &moduleName, const std::str
 	return boost::python::str( "VAR_ERR" );	
 }
 
+///////////////////////////////////////////////////////////////////////////////////	
+
+boost::python::object
+loadTypedVarList( ULONG64 address, const std::string &moduleName, const std::string &typeName, const std::string &listEntryName )
+{
+    ULONG64     entryAddress = 0;
+    
+    boost::python::list    objList;
+    
+    for( entryAddress = loadPtrByPtr( address ); entryAddress != address; entryAddress = loadPtrByPtr( entryAddress ) )
+    {
+        objList.append( containingRecord( entryAddress, moduleName, typeName, listEntryName ) );  
+    }
+    
+    return objList;
+}
+
 ///////////////////////////////////////////////////////////////////////////////////		
 
 bool
diff --git a/pykd/dbgtype.h b/pykd/dbgtype.h
index 631e1ab..359898c 100644
--- a/pykd/dbgtype.h
+++ b/pykd/dbgtype.h
@@ -34,6 +34,9 @@ private:
 boost::python::object
 loadTypedVar( const std::string &moduleName, const std::string &typeName, ULONG64 address );
 
+boost::python::object
+loadTypedVarList( ULONG64 address, const std::string &moduleName, const std::string &typeName, const std::string &listEntryName );
+
 boost::python::object
 containingRecord( ULONG64 address, const std::string &moduleName, const std::string &typeName, const std::string &fieldName );