Fix possible failure in pickling tests due to different instantiations
of the random module being around.
diff --git a/Lib/test/test_threaded_import.py b/Lib/test/test_threaded_import.py
index 5b96d87..6cedb96 100644
--- a/Lib/test/test_threaded_import.py
+++ b/Lib/test/test_threaded_import.py
@@ -27,6 +27,16 @@
 
 class ThreadedImportTests(unittest.TestCase):
 
+    def setUp(self):
+        self.old_random = sys.modules.pop('random', None)
+
+    def tearDown(self):
+        # If the `random` module was already initialized, we restore the
+        # old module at the end so that pickling tests don't fail.
+        # See http://bugs.python.org/issue3657#msg110461
+        if self.old_random is not None:
+            sys.modules['random'] = self.old_random
+
     def test_parallel_module_init(self):
         if imp.lock_held():
             # This triggers on, e.g., from test import autotest.