Here's XmlHttpRequest - Debugging (version 1.1), an update on the original.
The fixed bug: onreadystatechange callbacks weren't getting triggered properly. The reason was the native XmlHttpRequest object doesn't call onreadystatechange if it also has an onload callback. The replacement onload handler now calls any onload and onreadystatechange callback from the user, emulating the same logic.