> > ..or, since the original problem was that no instance variable has been > created, just create it (in quick and dirty way): I have not written complicated code because I wanted to write complicated code ;) > > class Module > alias_method :orig_attr, :attr > def attr(symbol, writable = false) > orig_attr symbol, writable > send symbol > end The idea is to have attributes and not instance variables, creating instance variables on the fly with the attr method will not distinguish them from other instance variables. I reckon that the only sense I could make from the post was when OP talked about the instance variables """created""" by the existence of accessors. You do that for him, I would think it is worth to distinguish them. Also have a look at inheritance, which is not handled by your code. Cheers Robert -- You see things; and you say Why? But I dream things that never were; and I say Why not? -- George Bernard Shaw