diff --git a/cmd/tools/fast/fast.v b/cmd/tools/fast/fast.v
index 701ca88774..9a366a2221 100644
--- a/cmd/tools/fast/fast.v
+++ b/cmd/tools/fast/fast.v
@@ -116,12 +116,28 @@ fn measure(cmd string, description string) int {
 
 fn measure_steps(vdir string) (int, int, int) {
 	resp := os.execute_or_panic('$vdir/vprod -o v.c -show-timings $vdir/cmd/v')
+	mut parse, mut check, mut cgen := 0, 0, 0
 	lines := resp.output.split_into_lines()
-	if lines.len != 3 {
-		return 0, 0, 0
+	if lines.len == 3 {
+		parse = lines[0].before('.').int()
+		check = lines[1].before('.').int()
+		cgen = lines[2].before('.').int()
+	} else {
+		ms_lines := lines.map(it.split('  ms '))
+		for line in ms_lines {
+			if line.len == 2 {
+				// if line[1] == 'SCAN' { scan = line[0].int() }
+				if line[1] == 'PARSE' {
+					parse = line[0].int()
+				}
+				if line[1] == 'CHECK' {
+					check = line[0].int()
+				}
+				if line[1] == 'C GEN' {
+					cgen = line[0].int()
+				}
+			}
+		}
 	}
-	parse := lines[0].before('.').int()
-	check := lines[1].before('.').int()
-	cgen := lines[2].before('.').int()
 	return parse, check, cgen
 }