deletedGameObject.Equals(deletedGameObject) evaluates to false now. (deletedGameObject == deletedGameObject ) still evaluates to true. so... (deletedGameObject == deletedGameObject ) != deletedGameObject .Equals(deletedGameObject) Object.Equals has been changed and no longer reacts the same as the overloaded Object == operator. Is this desired behaviour? That a deleted Object when compared against itself with == returns true. But when compared with Object.Equals it returns false. This shows itself when trying to remove "null" gameObject references from a dictionary. The remove will fail to find the reference to be removed. My work around is to define my own Comparer that uses exclusively ==, but the underlying change will probably hit a bunch of people.