WeakHashMap.put() can be optimized a bit because tab[i] is read twice if the key is not in the map. If someone can create a bug for that ... I will provide a patch. Rémi