diff --git a/samples/synimp.py b/samples/synimp.py
index ad51270..5f75921 100644
--- a/samples/synimp.py
+++ b/samples/synimp.py
@@ -16,29 +16,24 @@ def addSymSymbolsByImports(dbgModule):
     if ntHeader.OptionalHeader.Magic == 0x10b:
       systemModule = loadModule( "ntdll32" ) 
       ntHeader = typedVar( systemModule.name(), "_IMAGE_NT_HEADERS", dbgModule.begin() + ptrDWord( dbgModule.begin() + 0x3c ) )
-      pSize = 4
-    else:
-      pSize = 8     
   else:
       ntHeader = typedVar( systemModule.name(), "_IMAGE_NT_HEADERS", dbgModule.begin() + ptrDWord( dbgModule.begin() + 0x3c ) )
-      pSize = 4
 
   if ntHeader.OptionalHeader.DataDirectory[12].Size == 0:
     return
   
   iatAddr = dbgModule.begin() + ntHeader.OptionalHeader.DataDirectory[12].VirtualAddress;
 
-  for i in range( 0, ntHeader.OptionalHeader.DataDirectory[12].Size / pSize ):
-      pIatEtry = iatAddr + i*pSize;
-
-      if ( pSize == 4 ):
-        iatEntry = ptrDWord( pIatEtry )
-      else:
-        iatEntry = ptrQWord( pIatEtry )
+  for i in range( 0, ntHeader.OptionalHeader.DataDirectory[12].Size / ptrSize() ):
+      pIatEtry = iatAddr + i*ptrSize();
+      iatEntry = ptrPtr( pIatEtry )
 
       if iatEntry != 0:
-        symbolName = findSymbol( iatEntry ) 
-        addSynSymbol(pIatEtry, pSize, "_imp_" + symbolName)
+        try:
+          symbolName = findSymbol( iatEntry ) 
+          addSynSymbol(pIatEtry, ptrSize(), "_imp_" + symbolName)
+        except TypeError:
+          dprintln( "Symbol for 0x%x" % iatEntry + " not found" )
 
 if __name__ == "__main__":