Here is a slightly tweeked version based on some of the feed back.
The question that I have is should I continue working on the "drop in" replacement or should I work on a version that requires the source? Modifying the source would be easier in many ways but would be inaccesable until (if) it where merged into the trunk.