Why does instance_eval interfere with extend? Should it? If I remove instance_eval, or place extend before it, meth1 in Klass is overriden with meth1 in ExtMod. Ruby 1.6.8 Windows. Thanks, module ExtMod def meth1; puts 'C - ExtMod meth1'; end def meth2; puts 'D - ExtMod meth2'; end end class Klass def meth1; puts 'A - Klass meth1'; end end s = "def meth1; puts 'B - instance_eval meth1'; end" a=Klass.new a.meth1 #-> A - Klass meth1 a.instance_eval(s) a.meth1 #-> B - instance_eval meth1 a.extend(ExtMod) a.meth1 #-> B - instance_eval meth1 a.meth2 #-> D - ExtMod meth2 - Jim Davis -