If we don't do this, a RobustDictIterator owned by someone else holds dangling pointers to the Dictionary that is being cleared. Closes #3523