Removed the manually created Enumerator and used an iterator. I'm still locking at each access, so it's still going to be only *generally* correct, depending on other threads, but it shouldn't deadlock.