diff -r d678e3277048 -r 6027dddc26c6 src/share/vm/opto/ifnode.cpp --- a/src/share/vm/opto/ifnode.cpp Mon Jun 28 10:52:50 2010 -0700 +++ b/src/share/vm/opto/ifnode.cpp Mon Jun 28 14:54:39 2010 -0700 @@ -1081,11 +1081,9 @@ igvn->register_new_node_with_optimizer(new_if_f); igvn->register_new_node_with_optimizer(new_if_t); - igvn->hash_delete(old_if_f); - igvn->hash_delete(old_if_t); // Flip test, so flip trailing control - igvn->subsume_node(old_if_f, new_if_t); - igvn->subsume_node(old_if_t, new_if_f); + igvn->replace_node(old_if_f, new_if_t); + igvn->replace_node(old_if_t, new_if_f); // Progress return iff;