diff --git a/synthesize.sage b/synthesize.sage
index 3426e9c3697f204e8d36a94c5805bf6484624fa3..6c01c68b213351ec0352941aa2c7a4f9a5612b4b 100644
--- a/synthesize.sage
+++ b/synthesize.sage
@@ -59,7 +59,7 @@ def time_format_2(t):
 
 
 def steps_format(N):
-    if N == 0:
+    if N is None or N == 0:
         return ""
     elif N < 10_000:
         return str(math.ceil(N))
@@ -68,7 +68,7 @@ def steps_format(N):
 
 
 def steps_format_2(N):
-    if N == 0:
+    if N is None or N == 0:
         return ""
     elif N < 100:
         return "$<$ 0.01"
@@ -195,6 +195,12 @@ data_stats = {
     "htype": lambda data: "N" if data.split("_")[0] == "newton" else ("T" if data.split("_")[0] == "linear" else "?")
 }
 
+def median(L):
+    if L:
+        return numpy.median(L)
+    else:
+        return None
+
 result_stats = {
     "failures": lambda res: str(res["failures"]) if res["failures"] != 0 else "",
     "tottime": lambda res: time_format_2(res["overheadtime"]) if "overheadtime" in res else time_format_2(res["time"]),
@@ -205,9 +211,9 @@ result_stats = {
     "timeperstep": lambda res: '{0:.2e}'.format(1000*float(res["time"])/float(sum([int(p) for p in res["steplist"] if p is not None]))),
     "meansteps": lambda res: steps_format(round(numpy.mean([int(p) for p in res["steplist"] if p is not None]), 1)),
     "stdsteps": lambda res: steps_format(round(numpy.std([int(p) for p in res["steplist"] if p is not None]), 1)),
-    "medsteps": lambda res: steps_format(numpy.median([int(p) for p in res["steplist"] if p is not None])),
-    "minsteps": lambda res: steps_format(min([int(p) for p in res["steplist"] if p is not None])),
-    "maxsteps": lambda res: steps_format(max([int(p) for p in res["steplist"] if p is not None])),
+    "medsteps": lambda res: steps_format(median([int(p) for p in res["steplist"] if p is not None])),
+    "minsteps": lambda res: steps_format(min([int(p) for p in res["steplist"] if p is not None], default = None)),
+    "maxsteps": lambda res: steps_format(max([int(p) for p in res["steplist"] if p is not None], default = None)),
     "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"]])),