diff --git a/glafp-utils/runstdtest/runstdtest.prl b/glafp-utils/runstdtest/runstdtest.prl
index 906f503bfc379f02da04cabac9db65e2640b1244..3c4c7c21b108e46b9693916c0da878b5968552e6 100644
--- a/glafp-utils/runstdtest/runstdtest.prl
+++ b/glafp-utils/runstdtest/runstdtest.prl
@@ -400,11 +400,11 @@ sub process_stats_file {
 		$TotMem = $1;
 	    }
 
-	    if ( /^\s*INIT\s+time\s*(\d+\.\d\d)s\s*\(\s*(\d+\.\d\d)s elapsed\)/ ) {
+	    if ( /^\s*INIT\s+time\s*(-*\d+\.\d\d)s\s*\(\s*(-*\d+\.\d\d)s elapsed\)/ ) {
 		$InitTime = $1; $InitElapsed = $2;
-	    } elsif ( /^\s*MUT\s+time\s*(\d+\.\d\d)s\s*\(\s*(\d+\.\d\d)s elapsed\)/ ) {
+	    } elsif ( /^\s*MUT\s+time\s*(-*\d+\.\d\d)s\s*\(\s*(-*\d+\.\d\d)s elapsed\)/ ) {
 		$MutTime = $1; $MutElapsed = $2;
-	    } elsif ( /^\s*GC\s+time\s*(\d+\.\d\d)s\s*\(\s*(\d+\.\d\d)s elapsed\)/ ) {
+	    } elsif ( /^\s*GC\s+time\s*(-*\d+\.\d\d)s\s*\(\s*(-*\d+\.\d\d)s elapsed\)/ ) {
 		$GcTime = $1; $GcElapsed = $2;
 	    }
 	}
@@ -467,6 +467,15 @@ sub process_stats_file {
     $MutElapsed =~ s/,//g;
     $GcTime =~ s/,//g;
     $GcElapsed =~ s/,//g;
+
+    # if timings are negative (I've seen -0.00s) then set to 0
+    $InitTime           = 0 unless $InitTime >= 0;
+    $InitElapsed        = 0 unless $InitElapsed >= 0; 
+    $MutTime            = 0 unless $MutTime >= 0;
+    $MutElapsed         = 0 unless $MutElapsed >= 0;
+    $GcTime             = 0 unless $GcTime >= 0;
+    $GcElapsed          = 0 unless $GcElapsed >= 0;
+    
 }
 
 sub process_spixstats_files { # 2 of them; one for mutator, one for GC