Originally by: Latchesar Ionkov <lucho@ionkov.net>

Modified for diod: Jim Garlick <garlick.jim@gmail.com>
