From: Robert Klemme Date: 2004-05-17T19:03:48+09:00 Subject: Why do #dup and #clone behave differently with respect to instance methods >> class Foo;end => nil >> f = Foo.new => # >> def f.bar; puts "ja"; end => nil >> f.bar ja => nil >> f.dup.bar NoMethodError: undefined method `bar' for # from (irb):5 >> f.clone.bar ja => nil Here's a technical description: "While clone is used to duplicate an object, including its internal state, dup typically uses the class of the descendent object to create the new instance." http://www.ruby-doc.org/docs/rdoc/1.9/classes/Object.html#M000889 I'm interested in the reasoning behind this. Kind regards robert