Devin Mullins wrote: > class Foo; def thing; nil end end > f = Foo.new; f.thing #=> nil > m = f.method :thing; m.call #=> nil > class Foo; def thing; 5 end end > f.thing #=> 5 > m.call #=> nil I think what's going on here is that it's making a copy of the method instead of just pointing a variable at it. Lisp does the same thing: (defun foo () 'nil) (foo) ;nil (setf bar #'foo) (funcall bar) ;nil (defun foo () 5) (foo) ;5 (funcall bar) ;nil