On Tue, Aug 15, 2006 at 02:13:56AM +0900, Pit Capitain wrote:
> Martin, this seems to be a bug. As you guessed, there is a method lookup 
> cache, and it isn't flushed correctly when removing a method. Here's a 
> simpler code to show the bug...
[...]
> The method lookup cache of class C isn't cleared (bug), so you can still 
> call the old method:
> 
>   C.new.m
>   # => "M#m"
[...] 
> I will forward this to the ruby-core mailing list.

This was fixed one month ago in both HEAD and ruby_1_8:

        * eval.c (rb_clear_cache_for_undef): clear entries for included
          module.  fixed: [ruby-core:08180]

-- 
Mauricio Fernandez  -   http://eigenclass.org   -  singular Ruby