Frank Bruno <fbruno@attbi.com>
 * original module

David Kuehling <dvdkhlng@gmx.de>
 * complete rewrite

Tomasz Sterna <tomek@xiaoka.com>
 * 2.6.x port
