Hmmm...but not everything that responds to :clone can be cloned. C:\>irb irb(main):001:0> x = 1 => 1 irb(main):002:0> x.class => Fixnum irb(main):003:0> x.respond_to? :clone => true irb(main):004:0> x.clone TypeError: can't clone Fixnum from (irb):4:in `clone' from (irb):4 irb(main):005:0>