Originally written by Jeroen T. Vermeulen <jtv@pqxx.org>
Forked by Jacob Adams <tookmund@gmail.com>
