there is some seriously black art happening here: i added the following code to callbacks.rb def self.append_features(base) #:nodoc: super $i ||= 0 p $i p caller.last $i += 1 ... ... ... and then fired up ./script/console. this is what it prints: harp:~/ror/bug > ./script/console 0 "./script/console:2" Loading development environment. 0 "/home/ahoward/bin/irb:13" ... how on earth is that possible!? what has been done? just to illustrate it would be as if this code: harp:~/ror/bug > cat a.rb module M def self::append_features other $i ||= 0 p $i p caller.last $i += 1 end end class C include M include M end printed out ''0'' and then ''0'' but, of course, it does not: harp:~/ror/bug > irb -r a.rb 0 "/home/ahoward/bin/irb:13" 1 "/home/ahoward/bin/irb:13" can someone shed some light on this? -a -- ==============================================================================| ara [dot] t [dot] howard [at] noaa [dot] gov | all happiness comes from the desire for others to be happy. all misery | comes from the desire for oneself to be happy. | -- bodhicaryavatara ===============================================================================