diff --git a/src/Pure/ML/ml_statistics.ML b/src/Pure/ML/ml_statistics.ML
index 0ea843a..a548659 100644
--- a/src/Pure/ML/ml_statistics.ML
+++ b/src/Pure/ML/ml_statistics.ML
@@ -19,6 +19,7 @@ struct
 (* print *)

 fun print_int x = if x < 0 then "-" ^ Int.toString (~ x) else Int.toString x;
+fun print_lint x = if x < 0 then "-" ^ LargeInt.toString (~ x) else LargeInt.toString x;

 fun print_real0 x =
   let val s = Real.fmt (StringCvt.GEN NONE) x in
@@ -108,13 +109,13 @@ fun make_properties
      ("full_GCs", print_int gcFullGCs),
      ("partial_GCs", print_int gcPartialGCs),
      ("share_passes", print_int gcSharePasses),
-     ("size_allocation", print_int sizeAllocation),
-     ("size_allocation_free", print_int sizeAllocationFree),
-     ("size_code", print_int sizeCode),
-     ("size_heap", print_int sizeHeap),
-     ("size_heap_free_last_full_GC", print_int sizeHeapFreeLastFullGC),
-     ("size_heap_free_last_GC", print_int sizeHeapFreeLastGC),
-     ("size_stacks", print_int sizeStacks),
+     ("size_allocation", print_lint sizeAllocation),
+     ("size_allocation_free", print_lint sizeAllocationFree),
+     ("size_code", print_lint sizeCode),
+     ("size_heap", print_lint sizeHeap),
+     ("size_heap_free_last_full_GC", print_lint sizeHeapFreeLastFullGC),
+     ("size_heap_free_last_GC", print_lint sizeHeapFreeLastGC),
+     ("size_stacks", print_lint sizeStacks),
      ("threads_in_ML", print_int threadsInML),
      ("threads_total", print_int threadsTotal),
      ("threads_wait_condvar", print_int threadsWaitCondVar),
