--- old/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-11-11 17:16:58.555195120 +0100 +++ new/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-11-11 17:16:58.447195117 +0100 @@ -4270,10 +4270,11 @@ if (state == G1CollectedHeap::InCSet) { oop forwardee; - if (obj->is_forwarded()) { - forwardee = obj->forwardee(); + markOop m = obj->mark(); + if (m->is_marked()) { + forwardee = (oop) m->decode_pointer(); } else { - forwardee = _par_scan_state->copy_to_survivor_space(obj); + forwardee = _par_scan_state->copy_to_survivor_space(obj, m); } assert(forwardee != NULL, "forwardee should not be NULL"); oopDesc::encode_store_heap_oop(p, forwardee);