diff --git a/pykat/testing/test.py b/pykat/testing/test.py
index f8ae75e58365a46e306064915569a1798327e917..2981561b8af60837a70af69aa9d8ccc0d3c6c08e 100644
--- a/pykat/testing/test.py
+++ b/pykat/testing/test.py
@@ -27,50 +27,55 @@ def initProcess(dkats):
     done_kats = dkats
 
 def run_kat_file(item):
-    #print os.getpid(),"getting kat...",item["kat"]
-    global done_kats
-    
     kat = item["kat"]
     suite = item["suite"]
-    FINESSE_EXE = item["FINESSE_EXE"]
-    SUITE_PATH = item["SUITE_PATH"]
-    SUITE_OUTPUT_DIR  = item["SUITE_OUTPUT_DIR"]
-    basename = os.path.splitext(kat)[0]
     
-    if item["run_fast"] and ('map ' in open(kat).read()):
-        print "skipping " + kat			
-    else:
-        exp = None
+    try:
+        #print os.getpid(),"getting kat...",item["kat"]
+        global done_kats
         
-        try:
-            start = time.time()
-            
-            out,err = utils.runcmd([FINESSE_EXE, "--noheader", kat], cwd=SUITE_PATH)
-            
-            OUT_FILE = os.path.join(SUITE_PATH,basename + ".out")
-            LOG_FILE = os.path.join(SUITE_PATH,basename + ".log")
-            
-            f_in = open(LOG_FILE, 'rb')
-            f_out = gzip.open(LOG_FILE + ".gz", 'wb')
-            f_out.writelines(f_in)
-            f_out.close()
-            f_in.close()
-            
-            shutil.move(OUT_FILE, SUITE_OUTPUT_DIR)
-            shutil.move(LOG_FILE + ".gz", SUITE_OUTPUT_DIR)
-            
-        except utils.RunException as e:
+        FINESSE_EXE = item["FINESSE_EXE"]
+        SUITE_PATH = item["SUITE_PATH"]
+        SUITE_OUTPUT_DIR  = item["SUITE_OUTPUT_DIR"]
+        basename = os.path.splitext(kat)[0]
         
-            print "STDERR: " + e.out
-            print "STDOUT: " + e.err
+        if item["run_fast"] and ('map ' in open(kat).read()):
+            print "skipping " + kat			
+        else:
+            exp = None
             
-            print "Error running " + kat + ": " + e.err
+            try:
+                start = time.time()
+                
+                out,err = utils.runcmd([FINESSE_EXE, "--noheader", kat], cwd=SUITE_PATH)
+                
+                OUT_FILE = os.path.join(SUITE_PATH,basename + ".out")
+                LOG_FILE = os.path.join(SUITE_PATH,basename + ".log")
+                
+                f_in = open(LOG_FILE, 'rb')
+                f_out = gzip.open(LOG_FILE + ".gz", 'wb')
+                f_out.writelines(f_in)
+                f_out.close()
+                f_in.close()
+                
+                shutil.move(OUT_FILE, SUITE_OUTPUT_DIR)
+                shutil.move(LOG_FILE + ".gz", SUITE_OUTPUT_DIR)
+                
+            except utils.RunException as e:
             
-            exp = e
-        finally:
-            done_kats.value += 1
-            return [time.time()-start, suite, kat, exp]
-    
+                print "STDERR: " + e.out
+                print "STDOUT: " + e.err
+                
+                print "Error running " + kat + ": " + e.err
+                
+                exp = e
+            finally:
+                done_kats.value += 1
+                return [time.time()-start, suite, kat, exp]
+                
+    except Exception as e:
+        print "main error in kat call",e
+        return [0,suite,kat,NULL]
 
 class DiffException(Exception):
 	def __init__(self, msg, outfile):