Thanks for the move. I could not think of which forum to post to. I guess for me (so far) it seems to come down to seeing what happens with two of class Object. They're never equals unless they are refs to the same object. But they become equal when Java overrides them, not using Object's hashCode() anymore, but actually doing a content comparison (in a derived type). The hashCode is a slice of equals, whose uniqueness may only assist in a little internal performance, but which isn't required. (If I get that right) Cheers, Mark