Logan Capaldo wrote: > The reason doesn't happen with hello1 is > > instance_eval { # self is MailTruck in this block > define_method(...) { ... } # this is like self.define_method(...) > { ... } > # since define_method is a method, > # which is the same as define_method > outside of the instance_eval in this case So I can say the reason is that define_method is a method and def isn't a method but a reserved keyword. Thanks for your explanation, I think I've got it now. uncutstone -- Posted via http://www.ruby-forum.com/.