diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py
index 80fe475..24fca59 100644
--- a/Lib/test/string_tests.py
+++ b/Lib/test/string_tests.py
@@ -4,7 +4,7 @@
 
 import unittest, string, sys, struct
 from test import test_support
-from UserList import UserList
+from collections import UserList
 
 class Sequence:
     def __init__(self, seq='wxyz'): self.seq = seq
diff --git a/Lib/test/test_bisect.py b/Lib/test/test_bisect.py
index 95eafbe..dc18a0e 100644
--- a/Lib/test/test_bisect.py
+++ b/Lib/test/test_bisect.py
@@ -1,7 +1,7 @@
 import unittest
 from test import test_support
 from bisect import bisect_right, bisect_left, insort_left, insort_right, insort, bisect
-from UserList import UserList
+from collections import UserList
 
 class TestBisect(unittest.TestCase):
 
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index f781db3..762afad 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -5,7 +5,7 @@
                               run_with_locale
 from operator import neg
 
-import sys, warnings, random, collections, io, rational, fractions
+import sys, warnings, random, collections, io, fractions
 warnings.filterwarnings("ignore", "hex../oct.. of negative int",
                         FutureWarning, __name__)
 warnings.filterwarnings("ignore", "integer argument expected",
@@ -210,7 +210,7 @@
         # verify that circular objects are not handled
         a = []; a.append(a)
         b = []; b.append(b)
-        from UserList import UserList
+        from collections import UserList
         c = UserList(); c.append(c)
         self.assertRaises(RuntimeError, cmp, a, b)
         self.assertRaises(RuntimeError, cmp, b, c)
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index 2dc87b9..596a3ef 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -1,6 +1,5 @@
 from test.test_support import verify, verbose, TestFailed, sortdict
-from UserList import UserList
-from collections import UserDict
+from collections import UserDict, UserList
 
 def e(a, b):
     print(a, b)
diff --git a/Lib/test/test_file.py b/Lib/test/test_file.py
index 5da2da9..5102de3 100644
--- a/Lib/test/test_file.py
+++ b/Lib/test/test_file.py
@@ -5,7 +5,7 @@
 from weakref import proxy
 
 from test.test_support import TESTFN, findfile, run_unittest
-from UserList import UserList
+from collections import UserList
 
 class AutoFileTests(unittest.TestCase):
     # file tests for which a test file is automatically set up
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index 7f7332e..2f9c23f 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -7,7 +7,7 @@
 from weakref import proxy
 
 from test.test_support import TESTFN, findfile, run_unittest
-from UserList import UserList
+from collections import UserList
 
 import _fileio
 
diff --git a/Lib/test/test_richcmp.py b/Lib/test/test_richcmp.py
index 3f97ece..7b6f9be 100644
--- a/Lib/test/test_richcmp.py
+++ b/Lib/test/test_richcmp.py
@@ -254,7 +254,7 @@
 
     def test_recursion(self):
         # Check that comparison for recursive objects fails gracefully
-        from UserList import UserList
+        from collections import UserList
         a = UserList()
         b = UserList()
         a.append(b)
diff --git a/Lib/test/test_userlist.py b/Lib/test/test_userlist.py
index 32c7733..9d012e0 100644
--- a/Lib/test/test_userlist.py
+++ b/Lib/test/test_userlist.py
@@ -1,6 +1,6 @@
 # Check every path through every method of UserList
 
-from UserList import UserList
+from collections import UserList
 import unittest
 from test import test_support, list_tests
 
diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
index 922b293..7de7b77 100644
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -1,7 +1,7 @@
 import gc
 import sys
 import unittest
-import UserList
+import collections
 import weakref
 
 from test import test_support
@@ -157,7 +157,7 @@
         o = C()
         self.check_proxy(o, weakref.proxy(o))
 
-        L = UserList.UserList()
+        L = collections.UserList()
         p = weakref.proxy(L)
         self.failIf(p, "proxy for empty UserList should be false")
         p.append(12)
@@ -171,11 +171,11 @@
         p[1] = 5
         self.assertEqual(L[1], 5)
         self.assertEqual(p[1], 5)
-        L2 = UserList.UserList(L)
+        L2 = collections.UserList(L)
         p2 = weakref.proxy(L2)
         self.assertEqual(p, p2)
         ## self.assertEqual(repr(L2), repr(p2))
-        L3 = UserList.UserList(range(10))
+        L3 = collections.UserList(range(10))
         p3 = weakref.proxy(L3)
         self.assertEqual(L3[:], p3[:])
         self.assertEqual(L3[5:], p3[5:])
