Hi, "expanded" is a Set with just one element. executing (somewhere inside pier): expanded removeAll: expanded copy throws NotFound digging a bit, I found that the #scanFor: message answers 5 and real position of object in array is 1 (array size is 5, btw). in: scanFor: anObject "Scan the key array for the first slot containing either a nil (indicating an empty slot) or an element that matches anObject. Answer the index of that slot or raise an error if no slot is found. This method will be overridden in various subclasses that have different interpretations for matching elements." | index start | index := start := anObject hash \\ array size + 1. [ | element | ((element := array at: index) == nil or: [ element enclosedSetElement = anObject ]) ifTrue: [ ^index ]. (index := index \\ array size + 1) = start ] whileFalse. self errorNoFreeSpace this line: index := start := anObject hash \\ array size + 1. is answering 5... so method ends on first ifTrue: but... what the hell???????? any idea? thanks, Esteban