The following code
GRSmallDictionary2 new
at: 'x' put: 'x';
at: 'y' put: 'y';
at: 'z' put: 'z';
removeKey: 'z'
produces a subscript out of bounds. Tested in Pharo 7.
This is a simplified example, we hitted this problem in some Seaside code trying to remove some keys from the arguments of a JSObject.