Based on a based from Jesse Huang <jesse@icplus.com.tw>. Signed-off-by: Jeff Garzik <jeff@garzik.org>