次のように、method `==' called on terminated object というエラーが出る
のは変ではないでしょうか。

% ./ruby -v -e '
len = 1000
arr = (0...len).to_a
o = Object.new
class << o; self end.__send__(:define_method, :==) {|a|
  arr.clear; arr.compact!
  false
}
arr[100] = o
p arr.rindex(10)
'
ruby 1.9.0 (2004-09-15) [i686-linux]
-e:10:in `rindex': method `==' called on terminated object (0x401a501c) (NotImplementedError)
        from -e:10

# 続く
-- 
[田中 哲][たなか あきら][Tanaka Akira]