>>>>> "H" == HarryO <harryo / zipworld.com.au> writes: H> Can you explain why just putting the "alias original open" inside the H> "class File ... end" doesn't have the desired effect? I would have H> thought that anything within that scope would be effectively the same as H> putting it inside "class << self ... end". Well, when you write class A def tt end end you are defining a method. If you want to define a *class* method you write class A class << self def tt end end # or def A.tt end end This is the same for alias, if you write class A def tt end alias :uu :tt end you're aliasing the object method, not the *class* method Guy Decoux