--- old/src/share/vm/ci/ciObjectFactory.cpp 2009-12-03 11:54:16.524055035 +0100 +++ new/src/share/vm/ci/ciObjectFactory.cpp 2009-12-03 11:54:16.395112103 +0100 @@ -337,7 +337,12 @@ return new (arena()) ciMethodData(h_md); } else if (o->is_instance()) { instanceHandle h_i(THREAD, (instanceOop)o); - return new (arena()) ciInstance(h_i); + if (java_dyn_CallSite::is_instance(o)) + return new (arena()) ciCallSite(h_i); + else if (java_dyn_MethodHandle::is_instance(o)) + return new (arena()) ciMethodHandle(h_i); + else + return new (arena()) ciInstance(h_i); } else if (o->is_objArray()) { objArrayHandle h_oa(THREAD, (objArrayOop)o); return new (arena()) ciObjArray(h_oa);