diff --git a/Lib/test/fork_wait.py b/Lib/test/fork_wait.py
index 3c75de3..cc51f89 100644
--- a/Lib/test/fork_wait.py
+++ b/Lib/test/fork_wait.py
@@ -1,6 +1,6 @@
 """This test case provides support for checking forking and wait behavior.
 
-To test different wait behavior, overrise the wait_impl method.
+To test different wait behavior, override the wait_impl method.
 
 We want fork1() semantics -- only the forking thread survives in the
 child after a fork().
@@ -12,7 +12,9 @@
 the same application, the present example should work just fine.  DC
 """
 
-import os, sys, time, thread, unittest
+import os, sys, time, unittest
+import test.test_support as test_support
+thread = test_support.import_module('thread')
 
 LONGSLEEP = 2
 SHORTSLEEP = 0.5
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py
index 1a54ce5..0cf14bf 100644
--- a/Lib/test/test_asyncore.py
+++ b/Lib/test/test_asyncore.py
@@ -3,7 +3,6 @@
 import select
 import os
 import socket
-import threading
 import sys
 import time
 
@@ -11,6 +10,11 @@
 from test.test_support import TESTFN, run_unittest, unlink
 from StringIO import StringIO
 
+try:
+    import threading
+except ImportError:
+    threading = None
+
 HOST = test_support.HOST
 
 class dummysocket:
@@ -319,6 +323,7 @@
     def tearDown(self):
         asyncore.close_all()
 
+    @unittest.skipUnless(threading, 'Threading required for this test.')
     @test_support.reap_threads
     def test_send(self):
         evt = threading.Event()
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 0541535..555cdeb 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -7,7 +7,11 @@
 import os
 import subprocess
 import sys
-import threading
+
+try:
+    import threading
+except ImportError:
+    threading = None
 
 bz2 = import_module('bz2')
 from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
@@ -307,6 +311,7 @@
         else:
             self.fail("1 // 0 didn't raise an exception")
 
+    @unittest.skipUnless(threading, 'Threading required for this test.')
     def testThreading(self):
         # Using a BZ2File from several threads doesn't deadlock (issue #7205).
         data = "1" * 2**20
diff --git a/Lib/test/test_contextlib.py b/Lib/test/test_contextlib.py
index 42b90b6..f28c95e 100644
--- a/Lib/test/test_contextlib.py
+++ b/Lib/test/test_contextlib.py
@@ -3,9 +3,12 @@
 import sys
 import tempfile
 import unittest
-import threading
 from contextlib import *  # Tests __all__
 from test import test_support
+try:
+    import threading
+except ImportError:
+    threading = None
 
 
 class ContextManagerTestCase(unittest.TestCase):
@@ -264,6 +267,7 @@
         finally:
             test_support.unlink(tfn)
 
+@unittest.skipUnless(threading, 'Threading required for this test.')
 class LockContextTestCase(unittest.TestCase):
 
     def boilerPlate(self, lock, locked):
diff --git a/Lib/test/test_docxmlrpc.py b/Lib/test/test_docxmlrpc.py
index 1af3433..716333e 100644
--- a/Lib/test/test_docxmlrpc.py
+++ b/Lib/test/test_docxmlrpc.py
@@ -2,7 +2,7 @@
 import httplib
 import sys
 from test import test_support
-import threading
+threading = test_support.import_module('threading')
 import time
 import socket
 import unittest
diff --git a/Lib/test/test_file2k.py b/Lib/test/test_file2k.py
index a7681a9..accdc95 100644
--- a/Lib/test/test_file2k.py
+++ b/Lib/test/test_file2k.py
@@ -3,9 +3,12 @@
 import unittest
 import itertools
 import time
-import threading
 from array import array
 from weakref import proxy
+try:
+    import threading
+except ImportError:
+    threading = None
 
 from test import test_support
 from test.test_support import TESTFN, run_unittest
@@ -411,6 +414,7 @@
         self.assertTrue(f.subclass_closed)
 
 
+@unittest.skipUnless(threading, 'Threading required for this test.')
 class FileThreadingTests(unittest.TestCase):
     # These tests check the ability to call various methods of file objects
     # (including close()) concurrently without crashing the Python interpreter.
diff --git a/Lib/test/test_fork1.py b/Lib/test/test_fork1.py
index 0640071..3930667 100644
--- a/Lib/test/test_fork1.py
+++ b/Lib/test/test_fork1.py
@@ -6,10 +6,10 @@
 import signal
 import sys
 import time
-import threading
 
 from test.fork_wait import ForkWait
-from test.test_support import run_unittest, reap_children, get_attribute
+from test.test_support import run_unittest, reap_children, get_attribute, import_module
+threading = import_module('threading')
 
 #Skip test if fork does not exist.
 get_attribute(os, 'fork')
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 4f6d1c1..3a2ec5e 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -4,7 +4,6 @@
 # environment
 
 import ftplib
-import threading
 import asyncore
 import asynchat
 import socket
@@ -19,6 +18,7 @@
 from unittest import TestCase
 from test import test_support
 from test.test_support import HOST
+threading = test_support.import_module('threading')
 
 
 # the dummy data returned by server over the data channel when
diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py
index e392aee..0dc0a32 100644
--- a/Lib/test/test_httpservers.py
+++ b/Lib/test/test_httpservers.py
@@ -16,10 +16,10 @@
 import urllib
 import httplib
 import tempfile
-import threading
 
 import unittest
 from test import test_support
+threading = test_support.import_module('threading')
 
 
 class NoLogRequestHandler:
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 9ffe646..b3feb1b 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -26,7 +26,6 @@
 import sys
 import time
 import array
-import threading
 import random
 import unittest
 import weakref
@@ -38,6 +37,10 @@
 import codecs
 import io  # C implementation of io
 import _pyio as pyio # Python implementation of io
+try:
+    import threading
+except ImportError:
+    threading = None
 
 __metaclass__ = type
 bytes = support.py3k_bytes
@@ -749,6 +752,7 @@
 
         self.assertEquals(b"abcdefg", bufio.read())
 
+    @unittest.skipUnless(threading, 'Threading required for this test.')
     def test_threads(self):
         try:
             # Write out many bytes with exactly the same number of 0's,
@@ -996,6 +1000,7 @@
         with self.open(support.TESTFN, "rb", buffering=0) as f:
             self.assertEqual(f.read(), b"abc")
 
+    @unittest.skipUnless(threading, 'Threading required for this test.')
     def test_threads(self):
         try:
             # Write out many bytes from many threads and test they were
@@ -2090,7 +2095,7 @@
         with self.open(support.TESTFN, "w", errors="replace") as f:
             self.assertEqual(f.errors, "replace")
 
-
+    @unittest.skipUnless(threading, 'Threading required for this test.')
     def test_threads_write(self):
         # Issue6750: concurrent writes could duplicate data
         event = threading.Event()
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 432493b..0211f56 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -41,11 +41,13 @@
 from test.test_support import captured_stdout, run_with_locale, run_unittest,\
      find_unused_port
 import textwrap
-import threading
 import unittest
 import warnings
 import weakref
-
+try:
+    import threading
+except ImportError:
+    threading = None
 
 class BaseTest(unittest.TestCase):
 
@@ -765,6 +767,7 @@
         self.server_close()
 
 
+@unittest.skipUnless(threading, 'Threading required for this test.')
 class SocketHandlerTest(BaseTest):
 
     """Test for SocketHandler objects."""
@@ -1659,6 +1662,7 @@
     def test_config13_failure(self):
         self.assertRaises(StandardError, self.apply_config, self.config13)
 
+    @unittest.skipUnless(threading, 'listen() needs threading to work')
     def setup_via_listener(self, text):
         port = find_unused_port()
         t = logging.config.listen(port)
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index f75f0b1..4375f71 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -4,7 +4,6 @@
 # a real test suite
 
 import poplib
-import threading
 import asyncore
 import asynchat
 import socket
@@ -15,6 +14,7 @@
 from unittest import TestCase
 from test import test_support
 from test.test_support import HOST
+threading = test_support.import_module('threading')
 
 
 # the dummy data returned by server when LIST and RETR commands are issued
diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py
index 1636280..5f5a6ac 100644
--- a/Lib/test/test_queue.py
+++ b/Lib/test/test_queue.py
@@ -1,10 +1,10 @@
 # Some simple queue module tests, plus some failure conditions
 # to ensure the Queue locks remain stable.
 import Queue
-import threading
 import time
 import unittest
 from test import test_support
+threading = test_support.import_module('threading')
 
 QUEUE_SIZE = 5
 
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index 9a492f6..977a152 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -1,7 +1,6 @@
 import asyncore
 import email.utils
 import socket
-import threading
 import smtpd
 import smtplib
 import StringIO
@@ -9,9 +8,14 @@
 import time
 import select
 
-from unittest import TestCase
+import unittest
 from test import test_support
 
+try:
+    import threading
+except ImportError:
+    threading = None
+
 HOST = test_support.HOST
 
 def server(evt, buf, serv):
@@ -36,7 +40,8 @@
         serv.close()
         evt.set()
 
-class GeneralTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class GeneralTests(unittest.TestCase):
 
     def setUp(self):
         self._threads = test_support.threading_setup()
@@ -138,7 +143,8 @@
 # test server times out, causing the test to fail.
 
 # Test behavior of smtpd.DebuggingServer
-class DebuggingServerTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class DebuggingServerTests(unittest.TestCase):
 
     def setUp(self):
         # temporarily replace sys.stdout to capture DebuggingServer output
@@ -233,7 +239,7 @@
         self.assertEqual(self.output.getvalue(), mexpect)
 
 
-class NonConnectingTests(TestCase):
+class NonConnectingTests(unittest.TestCase):
 
     def testNotConnected(self):
         # Test various operations on an unconnected SMTP object that
@@ -254,7 +260,8 @@
 
 
 # test response of client to a non-successful HELO message
-class BadHELOServerTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class BadHELOServerTests(unittest.TestCase):
 
     def setUp(self):
         self.old_stdout = sys.stdout
@@ -378,7 +385,8 @@
 
 # Test various SMTP & ESMTP commands/behaviors that require a simulated server
 # (i.e., something with more features than DebuggingServer)
-class SMTPSimTests(TestCase):
+@unittest.skipUnless(threading, 'Threading required for this test.')
+class SMTPSimTests(unittest.TestCase):
 
     def setUp(self):
         self._threads = test_support.threading_setup()
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index f699e3c..0ce329f 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -6,7 +6,6 @@
 import errno
 import socket
 import select
-import thread, threading
 import time
 import traceback
 import Queue
@@ -16,6 +15,13 @@
 from weakref import proxy
 import signal
 
+try:
+    import thread
+    import threading
+except ImportError:
+    thread = None
+    threading = None
+
 HOST = test_support.HOST
 MSG = 'Michael Gilfix was here\n'
 
@@ -550,6 +556,7 @@
         s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100))
 
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class BasicTCPTest(SocketConnectedTest):
 
     def __init__(self, methodName='runTest'):
@@ -630,6 +637,7 @@
         self.serv_conn.send(MSG)
         self.serv_conn.shutdown(2)
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class BasicUDPTest(ThreadedUDPSocketTest):
 
     def __init__(self, methodName='runTest'):
@@ -658,6 +666,7 @@
     def _testRecvFromNegative(self):
         self.cli.sendto(MSG, 0, (HOST, self.port))
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class TCPCloserTest(ThreadedTCPSocketTest):
 
     def testClose(self):
@@ -673,6 +682,7 @@
         self.cli.connect((HOST, self.port))
         time.sleep(1.0)
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class BasicSocketPairTest(SocketPairTest):
 
     def __init__(self, methodName='runTest'):
@@ -692,6 +702,7 @@
         msg = self.cli.recv(1024)
         self.assertEqual(msg, MSG)
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class NonBlockingTCPTests(ThreadedTCPSocketTest):
 
     def __init__(self, methodName='runTest'):
@@ -760,6 +771,7 @@
         time.sleep(0.1)
         self.cli.send(MSG)
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class FileObjectClassTestCase(SocketConnectedTest):
 
     bufsize = -1 # Use default buffer size
@@ -989,6 +1001,7 @@
             lambda: socket.create_connection((HOST, port))
         )
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
 
     def __init__(self, methodName='runTest'):
@@ -1051,6 +1064,7 @@
         self.cli = socket.create_connection((HOST, self.port), 30)
         self.assertEqual(self.cli.gettimeout(), 30)
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
 
     def __init__(self, methodName='runTest'):
@@ -1220,6 +1234,7 @@
         self.assertRaises(socket.error, s.bind, address)
 
 
+@unittest.skipUnless(thread, 'Threading required for this test.')
 class BufferIOTest(SocketConnectedTest):
     """
     Test the buffer versions of socket.recv() and socket.send().
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 4f0dd3e..a478bd4 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -9,12 +9,15 @@
 import signal
 import socket
 import tempfile
-import threading
 import unittest
 import SocketServer
 
 import test.test_support
 from test.test_support import reap_children, reap_threads, verbose
+try:
+    import threading
+except ImportError:
+    threading = None
 
 test.test_support.requires("network")
 
@@ -119,6 +122,7 @@
         self.assertEquals(server.server_address, server.socket.getsockname())
         return server
 
+    @unittest.skipUnless(threading, 'Threading required for this test.')
     @reap_threads
     def run_server(self, svrcls, hdlrbase, testfunc):
         server = self.make_server(self.pickaddr(svrcls.address_family),
diff --git a/Lib/test/test_telnetlib.py b/Lib/test/test_telnetlib.py
index a04bc3f..fd5c6f7 100644
--- a/Lib/test/test_telnetlib.py
+++ b/Lib/test/test_telnetlib.py
@@ -1,11 +1,11 @@
 import socket
-import threading
 import telnetlib
 import time
 import Queue
 
 from unittest import TestCase
 from test import test_support
+threading = test_support.import_module('threading')
 
 HOST = test_support.HOST
 EOF_sigil = object()
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
index 33109ec..544e70d 100644
--- a/Lib/test/test_thread.py
+++ b/Lib/test/test_thread.py
@@ -2,7 +2,7 @@
 import unittest
 import random
 from test import test_support
-import thread
+thread = test_support.import_module('thread')
 import time
 import sys
 import weakref
diff --git a/Lib/test/test_threaded_import.py b/Lib/test/test_threaded_import.py
index 4b925c4..b31fdf1 100644
--- a/Lib/test/test_threaded_import.py
+++ b/Lib/test/test_threaded_import.py
@@ -5,9 +5,9 @@
 # complains several times about module random having no attribute
 # randrange, and then Python hangs.
 
-import thread
 import unittest
-from test.test_support import verbose, TestFailed
+from test.test_support import verbose, TestFailed, import_module
+thread = import_module('thread')
 
 critical_section = thread.allocate_lock()
 done = thread.allocate_lock()
diff --git a/Lib/test/test_threadedtempfile.py b/Lib/test/test_threadedtempfile.py
index 753f388..4aeb711 100644
--- a/Lib/test/test_threadedtempfile.py
+++ b/Lib/test/test_threadedtempfile.py
@@ -16,11 +16,10 @@
 NUM_THREADS = 20
 FILES_PER_THREAD = 50
 
-import thread # If this fails, we can't test this module
-import threading
 import tempfile
 
-from test.test_support import threading_setup, threading_cleanup, run_unittest
+from test.test_support import threading_setup, threading_cleanup, run_unittest, import_module
+threading = import_module('threading')
 import unittest
 import StringIO
 from traceback import print_exc
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 70dd026..2e2558a 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -5,8 +5,8 @@
 import random
 import re
 import sys
-import threading
-import thread
+thread = test.test_support.import_module('thread')
+threading = test.test_support.import_module('threading')
 import time
 import unittest
 import weakref
diff --git a/Lib/test/test_threading_local.py b/Lib/test/test_threading_local.py
index ab3b358..ad0f43c 100644
--- a/Lib/test/test_threading_local.py
+++ b/Lib/test/test_threading_local.py
@@ -1,7 +1,7 @@
 import unittest
 from doctest import DocTestSuite
 from test import test_support
-import threading
+threading = test_support.import_module('threading')
 import weakref
 import gc
 
diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py
index b28705f..127ddd2 100644
--- a/Lib/test/test_threadsignals.py
+++ b/Lib/test/test_threadsignals.py
@@ -1,11 +1,11 @@
 """PyUnit testing that threads honor our signal semantics"""
 
 import unittest
-import thread
 import signal
 import os
 import sys
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module
+thread = import_module('thread')
 
 if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos':
     raise unittest.SkipTest, "Can't test signal on %s" % sys.platform
diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py
index e3860f2..ef2614b 100644
--- a/Lib/test/test_urllib2_localnet.py
+++ b/Lib/test/test_urllib2_localnet.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python
 
-import threading
 import urlparse
 import urllib2
 import BaseHTTPServer
@@ -8,6 +7,7 @@
 import hashlib
 from test import test_support
 mimetools = test_support.import_module('mimetools', deprecated=True)
+threading = test_support.import_module('threading')
 
 # Loopback http server infrastructure
 
