Backport of eaeea6f94701547ce1b50dbcf5cf71460e9e4c91 from master
Should be unneeded with Python 2.7 and up. Added some unicode_literals along the way.