fixed SF bug #1378025 (https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1378025&group_id=7586), solution ripped from http://mail.python.org/pipermail/c++-sig/2003-October/005986.html