After a few more unit tests, I have fixed an issue with the GetSyncEnumerator method. The origional had 2 issues. was that the lock was being released too soon. was that a write in the middle of a long enumeration would cause a race and/or a deadlock. The fix was to 'write' lock for enumeration, and...