From http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/