rewrite of python 2.6 incompatible code