--- zipfile.old.py 2008-09-05 19:43:02.000000000 -0400 +++ zipfile.py 2008-12-20 23:38:25.000000000 -0300 @@ -877,7 +877,12 @@ if fheader[_FH_EXTRA_FIELD_LENGTH]: zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH]) - if fname != zinfo.orig_filename.encode("utf-8"): + encoding = 'cp437' + #check for utf-8 flag + if zinfo.flag_bits & 0x1 << 11: + encoding = 'utf-8' + + if fname != zinfo.orig_filename.encode(encoding): raise BadZipfile( 'File name in directory %r and header %r differ.' % (zinfo.orig_filename, fname))