Andreas.
Ok I understand. Next time put sigh..... Now I try to understand the relation will the WeakDictionary fix presented in my previous email.
Actually, I'm not mad (at least not at the author) and the above should really be read with a big "sigh" upfront. It is likely that the author was inspired by the error message from Set (notice the similarity between "Sets cannot meaningfully contain nil as an element" and "Dictionaries cannot meaningfully key by nil") probably assuming that because Dictionaries are Sets of sorts the same invariant would hold.
However, in Set there is an an ambiguity between a free slot in a set and a slot containing nil[*] but in dictionaries we store associations and therefore we can distinguish between an empty slot and a slot keyed by nil. And therefore, *sigh*, Dictionaries have always contained nil keys and they always will :-)
[*] Which would be easy enough to fix if someone really cared.
Now as I say in my previous email nil is not allowed in Visualworks,
That's hillarious! In particular considering that VW allows nil in sets...
But this is like that. Certainly result of an evolution or not breaking client code process. By the way you should have a look at HashTable on Squeaksource because the implementation of Dictionary there is much better in terms of collision strategy.
Stef