diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 100b26f..2212af5 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1157,14 +1157,6 @@
             if sys.platform != 'sunos5':
                 self.expected.add('test_nis')
 
-            # TODO: This is a hack to raise TestSkipped if -3 is not enabled.
-            # Instead of relying on callable to have a warning, we should expose
-            # the -3 flag to Python code somehow
-            with test_support.catch_warning() as w:
-                callable(int)
-                if w.message is None:
-                    self.expected.add('test_py3kwarn')
-
             self.valid = True
 
     def isvalid(self):
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index 719ed44..2672d0a 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -1067,25 +1067,14 @@
                     extract_version = zinfo.extract_version
                     create_version = zinfo.create_version
 
-                try:
-                    centdir = struct.pack(structCentralDir,
-                     stringCentralDir, create_version,
-                     zinfo.create_system, extract_version, zinfo.reserved,
-                     zinfo.flag_bits, zinfo.compress_type, dostime, dosdate,
-                     zinfo.CRC, compress_size, file_size,
-                     len(zinfo.filename), len(extra_data), len(zinfo.comment),
-                     0, zinfo.internal_attr, zinfo.external_attr,
-                     header_offset)
-                except DeprecationWarning:
-                    print >>sys.stderr, (structCentralDir,
-                     stringCentralDir, create_version,
-                     zinfo.create_system, extract_version, zinfo.reserved,
-                     zinfo.flag_bits, zinfo.compress_type, dostime, dosdate,
-                     zinfo.CRC, compress_size, file_size,
-                     len(zinfo.filename), len(extra_data), len(zinfo.comment),
-                     0, zinfo.internal_attr, zinfo.external_attr,
-                     header_offset)
-                    raise
+                centdir = struct.pack(structCentralDir,
+                 stringCentralDir, create_version,
+                 zinfo.create_system, extract_version, zinfo.reserved,
+                 zinfo.flag_bits, zinfo.compress_type, dostime, dosdate,
+                 zinfo.CRC, compress_size, file_size,
+                 len(zinfo.filename), len(extra_data), len(zinfo.comment),
+                 0, zinfo.internal_attr, zinfo.external_attr,
+                 header_offset)
                 self.fp.write(centdir)
                 self.fp.write(zinfo.filename.encode("utf-8"))
                 self.fp.write(extra_data)
