[Trans <transfire / gmail.com>, 2005-04-25 02.04 CEST] > Have a look at this. Run it as is, then unremark the comment section. > Something strange is a foot here. [ snip example ] > # my results > # w/ comment : "hello" > # w/o comment : "come on" Two things here: First, methods in the Delegator class (or subclass) are not forwarded: require 'delegate.rb' class SD < SimpleDelegator def b puts "sb.b" end end class X def b puts "x.b" end end x=X.new sd = SD.new(x) sd.b # => "sb.b" Second, when you include a module, it overwrites (overrides? obscures?) any method of the same name that you had: module M def b puts "m.b" end end class WW def initialize (class<<self;self;end).class_eval{ include M } end def b puts "ww.b" end end WW.new.b # => m.b Combination of the two: your case. Good luck.