diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index f471735..af6122c 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,6 @@
+0.7.1 (2019-11-19)
+    * Fix #73: calling `setUp` and `tearDown` in parameterized classes
+
 0.7.0 (2019-02-05)
     * Added parameterized_class feature, for parameterizing entire test
       classes (many thanks to @TobyLL for their suggestions and help testing!)
diff --git a/parameterized/parameterized.py b/parameterized/parameterized.py
index 96a662f..dd9f0ed 100644
--- a/parameterized/parameterized.py
+++ b/parameterized/parameterized.py
@@ -591,4 +591,15 @@
 
             test_class_module[name] = type(name, (base_class, ), test_class_dict)
 
+        # We need to leave the base class in place (see issue #73), but if we
+        # leave the test_ methods in place, the test runner will try to pick
+        # them up and run them... which doesn't make sense, since no parameters
+        # will have been applied.
+        # Address this by iterating over the base class and remove all test
+        # methods.
+        for method_name in list(base_class.__dict__):
+            if method_name.startswith("test_"):
+                delattr(base_class, method_name)
+        return base_class
+
     return decorator
diff --git a/parameterized/test.py b/parameterized/test.py
index c5fae1c..0621b6a 100644
--- a/parameterized/test.py
+++ b/parameterized/test.py
@@ -481,13 +481,35 @@
 ])
 class TestParameterizedClassDict(TestCase):
     expect([
+        "TestParameterizedClassDict_0:setUp(1, 0)",
+        "TestParameterizedClassDict_0:tearDown(1, 0)",
         "TestParameterizedClassDict_0:test_method(1, 0)",
         "TestParameterizedClassDict_1:test_method(0, 1)",
+        "TestParameterizedClassDict_1:setUp(0, 1)",
+        "TestParameterizedClassDict_1:tearDown(0, 1)",
     ])
 
     foo = 0
     bar = 0
 
+    def setUp(self):
+        # Ensure that super() works (issue #73)
+        super(TestParameterizedClassDict, self).setUp()
+        missing_tests.remove("%s:setUp(%r, %r)" %(
+            self.__class__.__name__,
+            self.foo,
+            self.bar,
+        ))
+
+    def tearDown(self):
+        # Ensure that super() works (issue #73)
+        super(TestParameterizedClassDict, self).tearDown()
+        missing_tests.remove("%s:tearDown(%r, %r)" %(
+            self.__class__.__name__,
+            self.foo,
+            self.bar,
+        ))
+
     def test_method(self):
         missing_tests.remove("%s:test_method(%r, %r)" %(
             self.__class__.__name__,
diff --git a/setup.py b/setup.py
index 0082729..8c2dc57 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@
 
 setup(
     name="parameterized",
-    version="0.7.0",
+    version="0.7.1",
     url="https://github.com/wolever/parameterized",
     license="FreeBSD",
     author="David Wolever",
