It wasn't a couple of hours before I ended up using a similar technique as yesterday's post. In this case, it was a multi selection list. Multiple selections were allowed, but some combinations were not allowed. I used the notification property (rather than the verification) and put together a method like this:
clearOtherVersions: aController
| targetPackage cleanedSelections |
targetPackage := packagesList list at: aController view targetIndex.
cleanedSelections := packagesList selections
reject: [:each | each name = targetPackage name and: [each ~~ targetPackage]].
packagesList selections: cleanedSelections
Basically, we find what element was just selected, and then reject any other like elements of different versions from the current selection set.