diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index 4f89d87..9c1fe2a 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -107,7 +107,7 @@
 # List subclass we can add attributes to.
 class MyClassSuite(list):
 
-    def __init__(self, tests, klass):
+    def __init__(self, tests):
         super(MyClassSuite, self).__init__(tests)
 
 
@@ -1262,7 +1262,7 @@
         tests = [Foo('test_1'), Foo('test_2')]
 
         loader = unittest.TestLoader()
-        loader.classSuiteClass = MyClassSuite
+        loader.suiteClass = list
         self.assertEqual(loader.loadTestsFromTestCase(Foo), tests)
 
     # It is implicit in the documentation for TestLoader.suiteClass that
@@ -1275,7 +1275,7 @@
             def foo_bar(self): pass
         m.Foo = Foo
 
-        tests = [unittest.ClassTestSuite([Foo('test_1'), Foo('test_2')], Foo)]
+        tests = [[Foo('test_1'), Foo('test_2')]]
 
         loader = unittest.TestLoader()
         loader.suiteClass = list
@@ -1294,7 +1294,7 @@
         tests = [Foo('test_1'), Foo('test_2')]
 
         loader = unittest.TestLoader()
-        loader.classSuiteClass = MyClassSuite
+        loader.suiteClass = list
         self.assertEqual(loader.loadTestsFromName('Foo', m), tests)
 
     # It is implicit in the documentation for TestLoader.suiteClass that
@@ -1307,7 +1307,7 @@
             def foo_bar(self): pass
         m.Foo = Foo
 
-        tests = [unittest.ClassTestSuite([Foo('test_1'), Foo('test_2')], Foo)]
+        tests = [[Foo('test_1'), Foo('test_2')]]
 
         loader = unittest.TestLoader()
         loader.suiteClass = list
@@ -2871,7 +2871,7 @@
                 def test_dont_skip(self): pass
             test_do_skip = Foo("test_skip")
             test_dont_skip = Foo("test_dont_skip")
-            suite = unittest.ClassTestSuite([test_do_skip, test_dont_skip], Foo)
+            suite = unittest.TestSuite([test_do_skip, test_dont_skip])
             events = []
             result = LoggingResult(events)
             suite.run(result)
@@ -2890,9 +2890,10 @@
                 record.append(1)
         record = []
         result = unittest.TestResult()
-        suite = unittest.ClassTestSuite([Foo("test_1")], Foo)
+        test = Foo("test_1")
+        suite = unittest.TestSuite([test])
         suite.run(result)
-        self.assertEqual(result.skipped, [(suite, "testing")])
+        self.assertEqual(result.skipped, [(test, "testing")])
         self.assertEqual(record, [])
 
     def test_expected_failure(self):
