Thanks for the example. I can see that in the case statement involving object, it behaves just like the "kind_of?" method. However, in the "Programming Ruby" book, this is what is written: ----------------------------- Object == Equality---At the Object level, == returns true only if obj and anObj are the same object. Typically this method is overridden... === Case Equality---A synonym for Object#==, but typically overridden... ----------------------------- Can I say, then, that the "Programming Ruby" book is wrong in this case? With the simple example, there is nothing that overrides the "===" operator, isn't there? Should I find another Ruby book now, the nutshell by Mr. Matz, perhaps? Regards, Bill ========================================================================== ts <decoux / moulon.inra.fr> wrote: > Try this > > class A > end > > class B < A > end > > case B.new > when A > puts "I'm an A" > end > Guy Decoux