From: Dave Bass Date: 2008-06-14T20:32:37+09:00 Subject: Re: Modules, Overloading, and some Confusion Old Echo wrote: > how > can I can call the start method defined in Honda rather than the start > method defined in Ford? The point is that it's the last-included start method that gets run. Since Ruby is very dynamic, you can modify classes on-the-fly, even for instantiated objects. Try this: module Honda def start puts "Wroom" end end module Ford def start puts "Rrrooom" end end class Car include Honda end car = Car.new car.start # => "Wroom" ... it's a Honda class Car include Ford end car.start # => "Rrrooom" ... now it's a Ford! However, you can't switch back to a Honda by adding this onto the end of the code above: class Car include Honda end car.start # => "Rrrooom" ... oops, it's still a Ford This is because Honda has already been included once, so the new include gets ignored (I think). Don't know if this solves your problem. Of course, another way around it would be to rename one of your start methods. -- Posted via http://www.ruby-forum.com/.