This may be a red herring, but it may help anyone digging into this problem.
Hashtable can behave unpredictably (which could include throwing a NPE) if a key object is updated after it has been added to a Hashtable, especially if this changes the hash value of the key. The unpredictable behaviour surfaces when the Hashtable is next used to find the updated key because the key is held by reference in a position related to its original hash value. It is conceivable that this is what is happening here. Glyn