以下のように、Object と Array に m というメソッドを定義し、
[] に対し delegate 経由で m を呼ぶと、Array でなく Object に
定義された m が呼ばれてしまいます。

% ./ruby -rdelegate -ve '
class Object
  def m
    p :o
  end
end
class Array
  def m
    p :a
  end
end
class A < DelegateClass(Array); end
A.new([]).m
'
ruby 1.9.2dev (2009-09-26 trunk 25102) [i686-linux]
:o

1.8 では、Array の m が呼ばれます。

% ruby-1.8 -rdelegate -ve '
class Object
  def m
    p :o
  end
end
class Array
  def m
    p :a
  end
end
class A < DelegateClass(Array); end
A.new([]).m
'
ruby 1.8.8dev (2009-09-15 revision 24931) [i686-linux]
:a
-- 
[田中 哲][たなか あきら][Tanaka Akira]