Hi! I wass looking at tha issue, specially at the item that says: "- ensure that #rehashWithoutBecome doesn't send #become:, making #rehashAllInstances a lot faster" And the change made in squeak was: Item was changed: ----- Method: MethodDictionary>>rehashWithoutBecome (in category 'private') ----- rehashWithoutBecome + | newInstance | + newInstance := self species new: self basicSize - 1. "Make sure it has the same capacity" + 1 to: self basicSize do: [ :index | + (self basicAt: index) ifNotNil: [ :key | + newInstance at: key put: (array at: index) ] ]. + ^newInstance! - | newSelf | - newSelf := self species new: self size. - 1 to: self basicSize do: [ :i | - | key | - (key := self basicAt: i) ifNotNil: [ - newSelf at: key put: (array at: i) ] ]. - ^newSelf! And I figured out that this change does nothing with its comment "ensure that #rehashWithoutBecome doesn't send #become:" Also, the only senders in the Core image are ScriptLoader SmalltalkImage (and there is no ·#rehashAllInstances ). ------------------------------------------ I tried this code before and after the change oldDicts := MethodDictionary allInstances. [ | newDicts | newDicts := Array new: oldDicts size. oldDicts withIndexDo: [ :d :index | newDicts at: index put: d rehashWithoutBecome ].] timeToRun And I saw a little improvement in performance (but it fluctuated a lot...). Does anyone know a performance difference between size and basicSize in Dictionary, HashedCollection or MethodDictionary? Thanks