diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index da22256..3a12251 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -9,6 +9,23 @@
 if not sys.py3kwarning:
     raise TestSkipped('%s must be run with the -3 flag' % __name__)
 
+try:
+    from test.test_support import __warningregistry__ as _registry
+except ImportError:
+    def check_deprecated_module(module_name):
+        return False
+else:
+    past_warnings = _registry.keys()
+    del _registry
+    def check_deprecated_module(module_name):
+        """Lookup the past warnings for module already loaded using
+        test_support.import_module(..., deprecated=True)
+        """
+        return any(module_name in msg and ' removed' in msg
+                   and issubclass(cls, DeprecationWarning)
+                   and (' module' in msg or ' package' in msg)
+                   for (msg, cls, line) in past_warnings)
+
 def reset_module_registry(module):
     try:
         registry = module.__warningregistry__
@@ -331,10 +348,9 @@
         """Make sure the specified module, when imported, raises a
         DeprecationWarning and specifies itself in the message."""
         with nested(CleanImport(module_name), warnings.catch_warnings()):
-            # XXX: This is not quite enough for extension modules - those
-            # won't rerun their init code even with CleanImport.
-            # You can see this easily by running the whole test suite with -3
-            warnings.filterwarnings("error", ".+ removed",
+            warnings.filterwarnings("error", ".+ (module|package) .+ removed",
+                                    DeprecationWarning, __name__)
+            warnings.filterwarnings("error", ".+ removed .+ (module|package)",
                                     DeprecationWarning, __name__)
             try:
                 __import__(module_name, level=0)
@@ -347,7 +363,10 @@
                     self.fail("Non-optional module {0} raised an "
                               "ImportError.".format(module_name))
             else:
-                self.fail("DeprecationWarning not raised for {0}"
+                # For extension modules, check the __warningregistry__.
+                # They won't rerun their init code even with CleanImport.
+                if not check_deprecated_module(module_name):
+                    self.fail("DeprecationWarning not raised for {0}"
                             .format(module_name))
 
     def test_platform_independent_removals(self):
@@ -407,10 +426,8 @@
 
 
 def test_main():
-    with check_warnings():
-        warnings.simplefilter("always")
-        run_unittest(TestPy3KWarnings,
-                     TestStdlibRemovals)
+    run_unittest(TestPy3KWarnings,
+                 TestStdlibRemovals)
 
 if __name__ == '__main__':
     test_main()
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 7400b0d..69b4d90 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -437,10 +437,10 @@
     if registry:
         registry.clear()
     with warnings.catch_warnings(record=True) as w:
-        # Disable filters, to record all warnings.  Because
-        # test_warnings swap the module, we need to look up
-        # in the sys.modules dictionary.
-        sys.modules['warnings'].resetwarnings()
+        # Set filter "always" to record all warnings.  Because
+        # test_warnings swap the module, we need to look up in
+        # the sys.modules dictionary.
+        sys.modules['warnings'].simplefilter("always")
         yield WarningsRecorder(w)
     # Filter the recorded warnings
     reraise = [warning.message for warning in w]
