diff --git a/ghc/runtime/storage/SMstats.lc b/ghc/runtime/storage/SMstats.lc
index eac2cfecfdf16ddfef74e6b21a7da9c2c421fa60..8082a63df15ac14cb73ff30c1c301bb76b8c7107 100644
--- a/ghc/runtime/storage/SMstats.lc
+++ b/ghc/runtime/storage/SMstats.lc
@@ -520,7 +520,7 @@ stat_exit(I_ alloc)
 	if (time - GC_tot_time == 0.0)
 		ullong_format_string((ullong)0, temp, rtsTrue/*commas*/);
 	else
-		ullong_format_string((ullong)(time - GC_tot_time),
+		ullong_format_string((ullong)(GC_tot_alloc*sizeof(W_)/(time - GC_tot_time)),
 			 temp, rtsTrue/*commas*/);
 
 	fprintf(sf, "  Alloc rate    %s bytes per MUT second\n\n", temp);