http://www.lshift.net/blog/2009/10/29/python-quirks