--- old/src/share/vm/opto/doCall.cpp 2014-03-20 12:32:00.476489717 +0100 +++ new/src/share/vm/opto/doCall.cpp 2014-03-20 12:32:00.204932351 +0100 @@ -631,13 +631,7 @@ } BasicType ct = ctype->basic_type(); if (ct == T_OBJECT || ct == T_ARRAY) { - ciKlass* better_type = method()->return_profiled_type(bci()); - if (UseTypeSpeculation && better_type != NULL) { - // If profiling reports a single type for the return value, - // feed it to the type system so it can propagate it as a - // speculative type - record_profile_for_speculation(stack(sp()-1), better_type); - } + record_profiled_return_for_speculation(); } }