patch from Mark Ethan Trostler <mark@zzo.com>