From: Jeremy Henty Date: 2006-07-16T04:25:10+09:00 Subject: Devious or what? : hacking super : should this work? I've discovered that an unadorned call to "super" need *not* call the parent method with the same arguments!!! If you bind the entire argument list to a variable you can modify the list before calling "super". Check it out: class Show def initialize(*args) puts args.inspect end end Show.new(1,34,"asd") class Show2 < Show def initialize(*args) puts args.shift super end end Show2.new(1,34,"asd") ===> [1, 34, "asd"] 1 [34, "asd"] So "args" is bound to the *actual* array of arguments, not just a copy. Is this a bug or a feature? Might this behaviour change in future? Regards, Jeremy Henty