This is a pity that allSharedPools does not return an ordered unique collection. Class>>allSharedPools "Answer a Set of the pools the receiver shares, including those defined in the superclasses of the receiver." | aSet | ^self superclass == nil ifTrue: [self sharedPools copy] ifFalse: [aSet := self superclass allSharedPools. aSet addAll: self sharedPools. aSet] since sharedPools returns now an orderedCollection I doubt that the uniqueness will the guaranteed. Behavior>>allSharedPools "Answer a Set of the names of the pools (Dictionaries or SharedPool subclasses) that the receiver and the receiver's ancestors share." ^superclass allSharedPools Now on a metaclass we will climb up the inheritance chain for nothing so I would define allSharedPools as follows ClassDescription>>allSharedPools "Answer a Set of the pools the receiver shares, including those defined in the superclasses of the receiver." ^ OrderedCollection new Tell me what you think? Stef