diff -r 11d828189455 Lib/zipfile.py --- a/Lib/zipfile.py Tue Aug 12 22:45:21 2008 +0200 +++ b/Lib/zipfile.py Sun Aug 17 14:17:13 2008 +0200 @@ -163,6 +163,7 @@ def _EndRecData64(fpin, offset, endrec): return endrec # Update the original endrec using data from the ZIP64 record + endrec[_ECD_SIGNATURE] = sig endrec[_ECD_DISK_NUMBER] = disk_num endrec[_ECD_DISK_START] = disk_dir endrec[_ECD_ENTRIES_THIS_DISK] = dircount @@ -735,9 +736,8 @@ class ZipFile: # "concat" is zero, unless zip was concatenated to another file concat = endrec[_ECD_LOCATION] - size_cd - offset_cd - if endrec[_ECD_LOCATION] > ZIP64_LIMIT: - # If the offset of the "End of Central Dir" record requires Zip64 - # extension structures, account for them + if endrec[_ECD_SIGNATURE] == stringEndArchive64: + # If Zip64 extension structures are present, account for them concat -= (sizeEndCentDir64 + sizeEndCentDir64Locator) if self.debug > 2: