Index: gc.c =================================================================== --- gc.c (revision 25630) +++ gc.c (working copy) @@ -1918,8 +1918,9 @@ GC_PROF_SET_MALLOC_INFO; if (malloc_increase > malloc_limit) { malloc_limit += (size_t)((malloc_increase - malloc_limit) * (double)live / (live + freed)); - if (malloc_limit < GC_MALLOC_LIMIT) malloc_limit = GC_MALLOC_LIMIT; } + malloc_limit -= malloc_limit / 16; + if (malloc_limit < GC_MALLOC_LIMIT) malloc_limit = GC_MALLOC_LIMIT; malloc_increase = 0; if (freed < free_min) { set_heaps_increment(objspace);