Index: iseq.c =================================================================== --- iseq.c (revision 26358) +++ iseq.c (working copy) @@ -1008,14 +1008,10 @@ { VALUE ret = Qnil; rb_iseq_t *iseq; - extern rb_iseq_t *rb_method_get_iseq(VALUE body); rb_secure(1); - if ((iseq = rb_method_get_iseq(body)) != 0) { - ret = rb_iseq_disasm(iseq->self); - } - else if (rb_obj_is_proc(body)) { + if (rb_obj_is_proc(body)) { rb_proc_t *proc; VALUE iseqval; GetProcPtr(body, proc); @@ -1024,7 +1020,14 @@ ret = rb_iseq_disasm(iseqval); } } + else { + extern rb_iseq_t *rb_method_get_iseq(VALUE body); + if ((iseq = rb_method_get_iseq(body)) != 0) { + ret = rb_iseq_disasm(iseq->self); + } + } + return ret; }