>>>>> "D" == Dave Thomas <Dave / PragmaticProgrammer.com> writes: D> I'm guessing D> that the Foo object is undergoing the same treatment, and therefore D> that Ruby can't tell the resulting copied key from the next "hello" D> that comes along. In reality this is because you can't change String#hash. Well, you can, but ruby will not use it internally (this was why I've said "but don't try to redefine #hash for String" in [ruby-talk:8034]) Guy Decoux