SF bug #1078905: Docs for unittest run() methods are misleading
diff --git a/Lib/unittest.py b/Lib/unittest.py
index 70645fb..efb2b02 100644
--- a/Lib/unittest.py
+++ b/Lib/unittest.py
@@ -277,7 +277,8 @@
         finally:
             result.stopTest(self)
 
-    __call__ = run
+    def __call__(self, *args, **kwds):
+        return self.run(*args, **kwds)
 
     def debug(self):
         """Run the test without collecting errors in a TestResult"""
@@ -417,15 +418,15 @@
             self.addTest(test)
 
     def run(self, result):
-        return self(result)
-
-    def __call__(self, result):
         for test in self._tests:
             if result.shouldStop:
                 break
             test(result)
         return result
 
+    def __call__(self, *args, **kwds):
+        return self.run(*args, **kwds)
+
     def debug(self):
         """Run the tests without collecting errors in a TestResult"""
         for test in self._tests: test.debug()
diff --git a/Misc/NEWS b/Misc/NEWS
index 43289c9..b20b872 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,10 @@
 Library
 -------
 
+- unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
+  extended or overridden by subclasses.  Formerly, the subclassed method would
+  be ignored by the rest of the module.  (Bug #1078905).
+
 - the deprecated whrandom module was removed.  Use the random module instead.
 
 - heapq.nsmallest() and heapq.nlargest() now support key= arguments with