Third email in a row... I hope that's not considered spamming ~_~ Since the patch was based on r15675, I tried to merge that plus my changes into the trunk (r15730) but ran into some conflicts. While resolving them, I realized that r15683 and 15684 (the apparent source of the conflict) were sorting the heap list by order of memory location. But that's not needed if a linear search is more efficient than a bsearch, so I removed the sorting. New heaps are now added at the end of the list and the list is searched from last to first (therefore largest to smallest). So now, for the following test case which generates 9 heaps GC.disable x=(1..1000000).map{"x"*10} GC.enable GC.start The COW-friendly version is only 1-2% slower than r15730. I hope this makes it into the trunk but please do review the code. -- Daniel