diff --git a/Lib/test/test_bsddb3.py b/Lib/test/test_bsddb3.py
index 5925e15..b290a6e 100644
--- a/Lib/test/test_bsddb3.py
+++ b/Lib/test/test_bsddb3.py
@@ -7,7 +7,11 @@
 import tempfile
 import time
 import unittest
-from test.test_support import requires, verbose, run_unittest, unlink, rmtree
+from test.test_support import (requires, verbose, run_unittest, unlink, rmtree,
+    import_module)
+
+#Skip test if bsddb cannot import _bsddb.
+import_module('bsddb')
 
 # When running as a script instead of within the regrtest framework, skip the
 # requires test, since it's obvious we want to run them.
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 2f627c3..215a04e 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 from test import test_support
-from test.test_support import TESTFN
+from test.test_support import TESTFN, import_module
 
 import unittest
 from cStringIO import StringIO
@@ -8,7 +8,7 @@
 import subprocess
 import sys
 
-import bz2
+bz2 = import_module('bz2')
 from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
 
 has_cmdline_bunzip2 = sys.platform not in ("win32", "os2emx", "riscos")
diff --git a/Lib/test/test_ctypes.py b/Lib/test/test_ctypes.py
index 7a81ab4..85f137e 100644
--- a/Lib/test/test_ctypes.py
+++ b/Lib/test/test_ctypes.py
@@ -1,6 +1,9 @@
 import unittest
 
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module
+#Skip tests if _ctypes module does not exist
+import_module('_ctypes')
+
 import ctypes.test
 
 def test_main():
diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py
index 26cfc81..e13c553 100644
--- a/Lib/test/test_curses.py
+++ b/Lib/test/test_curses.py
@@ -9,15 +9,16 @@
 # Only called, not tested: getmouse(), ungetmouse()
 #
 
-import curses, sys, tempfile, os
-import curses.panel
+import sys, tempfile, os
 
 # Optionally test curses module.  This currently requires that the
 # 'curses' resource be given on the regrtest command line using the -u
 # option.  If not available, nothing after this line will be executed.
 
-from test.test_support import requires
+from test.test_support import requires, import_module
 requires('curses')
+curses = import_module('curses')
+curses.panel = import_module('curses.panel')
 
 # XXX: if newterm was supported we could use it instead of initscr and not exit
 term = os.environ.get('TERM')
diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py
index 0541f86..1627fff 100755
--- a/Lib/test/test_dbm.py
+++ b/Lib/test/test_dbm.py
@@ -1,6 +1,6 @@
 from test import test_support
 import unittest
-import dbm
+dbm = test_support.import_module('dbm')
 
 class DbmTestCase(unittest.TestCase):
 
diff --git a/Lib/test/test_fork1.py b/Lib/test/test_fork1.py
index 9306242..b42304b 100644
--- a/Lib/test/test_fork1.py
+++ b/Lib/test/test_fork1.py
@@ -4,10 +4,10 @@
 import os
 import time
 from test.fork_wait import ForkWait
-from test.test_support import run_unittest, reap_children, import_function
+from test.test_support import run_unittest, reap_children, get_attribute
 
 #Skip test if fork does not exist.
-import_function(os, 'fork')
+get_attribute(os, 'fork')
 
 
 class ForkTest(ForkWait):
diff --git a/Lib/test/test_gdbm.py b/Lib/test/test_gdbm.py
index 76689f0..131d22b 100755
--- a/Lib/test/test_gdbm.py
+++ b/Lib/test/test_gdbm.py
@@ -1,7 +1,8 @@
-import gdbm
 import unittest
 import os
-from test.test_support import verbose, TESTFN, run_unittest, unlink
+from test.test_support import (verbose, TESTFN, run_unittest, unlink,
+    import_module)
+gdbm = import_module('gdbm')
 
 
 filename = TESTFN
diff --git a/Lib/test/test_ioctl.py b/Lib/test/test_ioctl.py
index 4da209d..823d954 100644
--- a/Lib/test/test_ioctl.py
+++ b/Lib/test/test_ioctl.py
@@ -1,12 +1,9 @@
 import unittest
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module, get_attribute
 import os, struct
-try:
-    import fcntl, termios
-except ImportError:
-    raise unittest.SkipTest("No fcntl or termios module")
-if not hasattr(termios,'TIOCGPGRP'):
-    raise unittest.SkipTest("termios module doesn't have TIOCGPGRP")
+fcntl = import_module('fcntl')
+termios = import_module('termios')
+get_attribute(termios, 'TIOCGPGRP') #Can't run tests without this feature
 
 try:
     tty = open("/dev/tty", "r")
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 4388fe0..105a743 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -17,20 +17,19 @@
 import socket
 import random
 import logging
+import test_support
 
 
+_multiprocessing = test_support.import_module('_multiprocessing')
+
 # Work around broken sem_open implementations
-try:
-    import multiprocessing.synchronize
-except ImportError, e:
-    raise unittest.SkipTest(e)
+test_support.import_module('multiprocessing.synchronize')
 
 import multiprocessing.dummy
 import multiprocessing.connection
 import multiprocessing.managers
 import multiprocessing.heap
 import multiprocessing.pool
-import _multiprocessing
 
 from multiprocessing import util
 
diff --git a/Lib/test/test_nis.py b/Lib/test/test_nis.py
index 0026953..8d49550 100644
--- a/Lib/test/test_nis.py
+++ b/Lib/test/test_nis.py
@@ -1,6 +1,7 @@
 from test import test_support
 import unittest
-import nis
+
+nis = test_support.import_module('nis')
 
 class NisTests(unittest.TestCase):
     def test_maps(self):
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py
index ddee6db..34893f1 100644
--- a/Lib/test/test_ossaudiodev.py
+++ b/Lib/test/test_ossaudiodev.py
@@ -3,8 +3,9 @@
 
 from test.test_support import findfile
 
+ossaudiodev = test_support.import_module('ossaudiodev')
+
 import errno
-import ossaudiodev
 import sys
 import sunau
 import time
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index f354a1b..52692a7 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -1,9 +1,9 @@
 import unittest
 from test import test_support
-
-import resource
 import time
 
+resource = test_support.import_module('resource')
+
 # This test is checking a few specific problem spots with the resource module.
 
 class ResourceTest(unittest.TestCase):
diff --git a/Lib/test/test_sqlite.py b/Lib/test/test_sqlite.py
index 37481c0..f8b2f98 100644
--- a/Lib/test/test_sqlite.py
+++ b/Lib/test/test_sqlite.py
@@ -1,10 +1,9 @@
 import unittest
-from test.test_support import run_unittest
+from test.test_support import run_unittest, import_module
 
-try:
-    import _sqlite3
-except ImportError:
-    raise unittest.SkipTest('no sqlite available')
+#Skip test of _sqlite3 module not installed
+import_module('_sqlite3')
+
 from sqlite3.test import (dbapi, types, userfunctions, py25tests,
                                 factory, transactions, hooks, regression,
                                 dump)
diff --git a/Lib/test/test_startfile.py b/Lib/test/test_startfile.py
index 23e2708..8eeae72 100644
--- a/Lib/test/test_startfile.py
+++ b/Lib/test/test_startfile.py
@@ -12,7 +12,7 @@
 import os
 from os import path
 
-startfile = test_support.import_function(os, 'startfile')
+startfile = test_support.get_attribute(os, 'startfile')
 
 
 class TestCase(unittest.TestCase):
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 90bd8e6..4353339 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -12,6 +12,7 @@
 import shutil
 import warnings
 import unittest
+import importlib
 
 __all__ = ["Error", "TestFailed", "ResourceDenied", "import_module",
            "verbose", "use_resources", "max_memuse", "record_original_stdout",
@@ -25,7 +26,7 @@
            "run_with_locale", "set_memlimit", "bigmemtest", "bigaddrspacetest",
            "BasicTestRunner", "run_unittest", "run_doctest", "threading_setup",
            "threading_cleanup", "reap_children", "cpython_only",
-           "check_impl_detail"]
+           "check_impl_detail", "get_attribute"]
 
 class Error(Exception):
     """Base class for regression test exceptions."""
@@ -49,24 +50,26 @@
             warnings.filterwarnings("ignore", ".+ (module|package)",
                                     DeprecationWarning)
         try:
-            module = __import__(name, level=0)
+            module = importlib.import_module(name)
         except ImportError:
             raise unittest.SkipTest("No module named " + name)
         else:
             return module
 
-def import_function(module, name, deprecated=False):
+def get_attribute(module, name, deprecated=False):
+    """Get an attribute from the module, raising SkipTest if it is
+    not available."""
     with warnings.catch_warnings():
         if deprecated:
             warnings.filterwarnings("ignore", ".+ (module|package)",
                                     DeprecationWarning)
         try:
-            function = getattr(module, name)
+            attribute = getattr(module, name)
         except AttributeError:
-            raise unittest.SkipTest("No function named %s in module %s" % (
-                name, module.__name__))
+            raise unittest.SkipTest("module %s has no attribute %s" % (
+                module.__name__, name))
         else:
-            return function
+            return attribute
 
 
 verbose = 1              # Flag set to 0 by regrtest.py
diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py
index 7ddd44b..3d5c14f 100644
--- a/Lib/test/test_xml_etree_c.py
+++ b/Lib/test/test_xml_etree_c.py
@@ -5,7 +5,7 @@
 
 from test import test_support
 
-from xml.etree import cElementTree as ET
+ET = test_support.import_module('xml.etree.cElementTree')
 
 SAMPLE_XML = """
 <body>
diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py
index adb87ff..cbf844f 100644
--- a/Lib/test/test_zlib.py
+++ b/Lib/test/test_zlib.py
@@ -1,9 +1,10 @@
 import unittest
 from test import test_support
-import zlib
 import binascii
 import random
 
+zlib = test_support.import_module('zlib')
+
 
 class ChecksumTestCase(unittest.TestCase):
     # checksum test cases
