Thanks Logan Capaldo. It works. But .. can you help me explain why my instance object 'b' and its methods are still reachable after remove_const on class 'B'? E.g. irb(main):001:0> class A irb(main):002:1> def show irb(main):003:2> p "i am A" irb(main):004:2> end irb(main):005:1> end => nil irb(main):006:0> class B irb(main):007:1> def show irb(main):008:2> p " i am B" irb(main):009:2> end irb(main):010:1> end => nil irb(main):011:0> b = B.new => #<B:0x3866ad8> irb(main):012:0> b.show " i am B" => nil irb(main):013:0> class Object irb(main):014:1> remove_const 'B' irb(main):015:1> end => B irb(main):016:0> class B < A irb(main):017:1> def show irb(main):018:2> p "i am B, child of A" irb(main):019:2> end irb(main):020:1> end => nil irb(main):021:0> b2 = B.new => #<B:0x38456e8> irb(main):022:0> b2.show "i am B, child of A" => nil irb(main):023:0> b.show " i am B" => nil irb(main):024:0> Thanks again. -- Posted via http://www.ruby-forum.com/.