diff -r 898493b2e3f1 -r 4adf43957a1b hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp Thu Feb 05 11:42:10 2009 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp Fri Feb 06 01:38:50 2009 +0300 @@ -566,7 +566,11 @@ void note_end_of_copying() { assert(top() >= _next_top_at_mark_start, "Increase only"); - _next_top_at_mark_start = top(); + // Survivor regions will be scanned on the start of concurrent + // marking. + if (!is_survivor()) { + _next_top_at_mark_start = top(); + } } // Returns "false" iff no object in the region was allocated when the