From: Magnus Holm Date: 2011-07-11T01:31:14+09:00 Subject: [ruby-core:37969] Re: [Ruby 1.9 - Bug #5015][Open] method_added" is called in addition to "method_undefined But undef_method *does* actually add a new method: it adds a method which prevents the superclass' method being called: class Foo < String; def +() end; undef_method :+ end Foo.new + "test" # => raises error class Bar < String; def +() end; remove_method :+ end Bar.new + "test" # => calls String#+ Seems consistant to me.