Isn't this missing a call to spill the hash table?  Where does that occur?