>>>>> "D" == David Alan Black <dblack / candle.superlink.net> writes: Well, you don't give the same example D> class Foo; end D> Foo.class_eval "def bar; puts 'bar'; end" D> Foo.new.bar # => bar here you've used class_eval D> class Foo; end D> Foo.send(:eval, "def thing; end") D> [].thing D> -:3: private method `thing' called for []:Array (NoMethodError) here you've used eval Use class Foo; end Foo.send(:class_eval, "def thing; end") Foo.new.thing # => thing send is a method of Kernel Guy Decoux