This is on trunk as of r5976.  I haven't done anything with it besides
some simple things in the tests I added, so I'd definitely appreciate
it if you could put it through the paces with your code.

I just gave this a quick shake down and it seems to be working perfectly. 

Thanks for all of your help! (my application takes one more step towards a more public beta...)