>>>>> "J" == John Kaurin <jkaurin / home.com> writes: J> < alias __eval _eval J> < alias __invoke _invoke J> < private :__eval J> < private :__invoke What you see is the interaction between tk.rb (more precisely tkencoding.rb) and tk.rb which define the same alias. You see it because, for your configuration this test is true if /^8\.[1-9]/ =~ Tk::TCL_VERSION && !Tk::JAPANIZED_TK end Another example pigeon% cat aa.rb class AA < Array alias __size size def size __size end end pigeon% pigeon% cat b.rb #!/usr/bin/ruby require 'aa' a = AA.new p a.size # reload aa.rb just to make an infinite loop load 'aa.rb' p a.size pigeon% pigeon% b.rb 0 ./aa.rb:4:in `size': stack level too deep (SystemStackError) from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' ... 4655 levels... from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./aa.rb:4:in `size' from ./b.rb:7 pigeon% Guy Decoux