[Bug #835415] AIX can return modes that are >65536, which causes an OverflowError.  Fix from Albert Chin
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index b1943c1..4f200c2 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -396,7 +396,7 @@
             zinfo = ZipInfo(filename, date_time)
         else:
             zinfo = ZipInfo(arcname, date_time)
-        zinfo.external_attr = st[0] << 16L      # Unix attributes
+        zinfo.external_attr = (st[0] & 0xFFFF) << 16L      # Unix attributes
         if compress_type is None:
             zinfo.compress_type = self.compression
         else: