diff --git a/rts/Stats.c b/rts/Stats.c
index c19f23c59d16e1c5bb6b15dfa6df368bb8fcda84..7db4563377e80df2e5204f3b8dcc316e7d66d3d4 100644
--- a/rts/Stats.c
+++ b/rts/Stats.c
@@ -691,7 +691,7 @@ stat_exit (void)
 	    statsPrintf("%16s bytes maximum slop\n", temp);
 
 	    statsPrintf("%16" FMT_SizeT " MB total memory in use (%" FMT_SizeT " MB lost due to fragmentation)\n\n", 
-                        peak_mblocks_allocated * MBLOCK_SIZE_W / (1024 * 1024 / sizeof(W_)),
+                        (W_)(peak_mblocks_allocated * MBLOCK_SIZE_W / (1024 * 1024 / sizeof(W_))),
                         (W_)(peak_mblocks_allocated * BLOCKS_PER_MBLOCK * BLOCK_SIZE_W - hw_alloc_blocks * BLOCK_SIZE_W) / (1024 * 1024 / sizeof(W_)));
 
 	    /* Print garbage collections in each gen */
diff --git a/rts/sm/Sanity.c b/rts/sm/Sanity.c
index 0d48ba2724ff62c7cc805b792205f6b0602533c5..c65333116477316d2650efc5c38b6b88b7c381f8 100644
--- a/rts/sm/Sanity.c
+++ b/rts/sm/Sanity.c
@@ -917,7 +917,7 @@ memInventory (rtsBool show)
                  live_blocks + free_blocks, MB(live_blocks+free_blocks));
       if (leak) {
           debugBelch("\n  in system    : %5" FMT_Word " blocks (%" FMT_Word " MB)\n", 
-                     mblocks_allocated * BLOCKS_PER_MBLOCK, mblocks_allocated);
+                     (W_)(mblocks_allocated * BLOCKS_PER_MBLOCK), mblocks_allocated);
       }
   }