Reviewed by Daniel Jacobowitz <drow@false.org>