diff --git a/run_entries.py b/run_entries.py
index d83e24047e482a11732c152ea9e94677d4cbb70d..d8ea08c0a1ab1596c560b8bbe65749e4ea8d0eed 100644
--- a/run_entries.py
+++ b/run_entries.py
@@ -19,7 +19,7 @@ parser.add_argument("-n", action='store_true',
 args = parser.parse_args()
 
 # Recovering data
-assert Path(args.entries), "Specify valid path"
+assert Path(args.entries).exists(), "Specify valid path"
 
 entries_file = open(args.entries, "r")
 try:
@@ -37,6 +37,13 @@ for i, pkg_name in enumerate(pkg_list):
         print(f"Data {j + 1}/{len(data_list)}")
         pkg_path = (Path("packages") / Path(f"{pkg_name}")).with_suffix(".py")
         data_name = Path(data_path)
-        if not ((Path("benchmarks") / data_name / pkg_name / "info.json").exists() and args.n):
+        try:
+            assert args.n
+            info_file = open(str(Path("benchmarks") /
+                                 data_name / pkg_name / "info.json"), "r")
+            info = json.load(info_file)
+            assert not info["killed manually"]
+            assert not info["script error"]
+        except:
             subprocess.run(["python3", "runtest.py", str(pkg_path), str(("data" / Path(data_path)).with_suffix(".json"))] + ["--timeout", str(args.timeout)]*(
                 args.timeout != None) + ["--mem", str(args.mem)]*(args.mem != None) + ["--perf"]*args.perf)
diff --git a/runtest.py b/runtest.py
index b38e36899857b3450f4ba6f141fe7017174ce350..07a18a2059c6ab4406757dfbe3fdb89b2f2a5f9e 100644
--- a/runtest.py
+++ b/runtest.py
@@ -158,6 +158,10 @@ if not args.norun:
         os.killpg(os.getpgid(p.pid), signal.SIGTERM)
         _, _ = p.communicate()
         info_dict["timeout error"] = True
+    except:
+        os.killpg(os.getpgid(p.pid), signal.SIGTERM)
+        _, _ = p.communicate()
+        
 
     out_file.close()
     log_file.close()
diff --git a/synthesize.py b/synthesize.py
index c1322e94e53fddf55bc9d8813afa5944aed8eb62..6a9858fec9c63ec03467310a40fccc81aa1ecb65 100644
--- a/synthesize.py
+++ b/synthesize.py
@@ -177,8 +177,8 @@ result_stats = {
     "q1steps": lambda res: steps_format(round(numpy.quantile([int(p) for p in res["steplist"] if p is not None], 0.25), 1)),
     "q3steps": lambda res: steps_format(round(numpy.quantile([int(p) for p in res["steplist"] if p is not None], 0.75), 1)),
     "maxprec": lambda res: str(max([int(p) for p in res["maxpreclist"]])),
-    "meanprec": lambda res: str(numpy.mean([int(p) for p in res["meanpreclist"]])),
-    "wmeanprec": lambda res: str(numpy.mean([int(p) for p in res["weightedmeanpreclist"]])),
+    "meanprec": lambda res: steps_format(numpy.mean([int(p) for p in res["meanpreclist"]])),
+    "wmeanprec": lambda res: steps_format(numpy.mean([int(p) for p in res["weightedmeanpreclist"]])),
 }
 
 def _table(data, branch, node):