I guess it's because Kernel isn't the receiver of the call. It's the top-level main object (of class Object, which mixes in Kernel) >> self => main >> self.class => Object >> class <<self; self; end.class_eval { define_method(:`) { puts "yay!" } } => #<Proc:0xb7c79054@(irb):2> >> %x{cat /dev/null} yay! => nil >> -- Posted via http://www.ruby-forum.com/.