The problem seams to be the kind of collection you are using. A SortedCollection holds elements sorted by a given criteria (In the form of a block). When you add elements to an instance of SortedCollection, the rule is execute with the new object added, and the contained object to determinate the object position. Now, the at: put: message in this kind of collections (SortedCollection is a specific class of OrderedCollection), is used to put an object instead of another. But in a SortedCollection, if you replace an object by other, then you are breaking the sort of the collection. That's why SortedCollection overrides at:put: as self shouldNotImplement, which raises an exception indicating that you send a message that should not be implemented by that object (Although for me, this reflects a bad design in the hierarchy of Collection) So the possible solutions are: -If what you want is sort the elements by a giving criteria, use add: to add the objects to the collection. -If you want to sort the collection by the order in which you added the elements, use OrderedCollection instead. You should use add: for this to, as at: put: is used to replace an object by another. -If you have a fixed number of elements to add, you should use an Array, you should set the object of the array using at: put: Hope that helps. And, if I misunderstood you problem, please forgive me. Cheers -- Alan Rodas Bonjour