I'm not sure if it's what you want, but here is something.
I too had a great deal of trouble with this code, it was constantly throwing exceptions and misbehaving, until I made the discovery that is included in a rather large comment.
[This message has been edited by Mike Curwen (edited March 28, 2001).]