From: mattmsykes@... (Matt M Sykes) Date: 2002-04-15T16:21:33+09:00 Subject: strange behavior for a subclass #!/usr/local/bin/ruby class A def clone() puts "A#clone" A.new() end end class B < A def initialize(data=nil) if data.kind_of?(A) # get a slice from an A elsif data.kind_of?(B) # regular copy constructor end end def clone() puts "B#clone" B.new(super.clone()) end end b0 = B.new() b1 = b0.clone() __END__ this prints: B#clone A#clone A#clone Oh my gosh, why is A#clone called twice? I realize this program is a bit nonsensical (also, a clone() method wouldn't be needed in ruby), but this is the simplest example that comes to mind which represents a bug I'm experiencing in other code. Thanks, Matt