diff --git a/Lib/test/sample_doctest.py b/Lib/test/sample_doctest.py
index 25a1d37..e5adee0 100644
--- a/Lib/test/sample_doctest.py
+++ b/Lib/test/sample_doctest.py
@@ -1,9 +1,9 @@
 """This is a sample module that doesn't really test anything all that
-   interesting
+   interesting.
 
-It simply has a few tests, some of which suceed and some of which fail.
+It simply has a few tests, some of which succeed and some of which fail.
 
-It's important that the numbers remain constance, as another test is
+It's important that the numbers remain constant as another test is
 testing the running of these tests.
 
 
@@ -61,6 +61,16 @@
     1
     """
 
+__test__ = {'good': """
+                    >>> 42
+                    42
+                    """,
+            'bad':  """
+                    >>> 42
+                    666
+                    """,
+           }
+
 def test_suite():
     import doctest
     return doctest.DocTestSuite()
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 5cd79d5..717771d 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -986,7 +986,7 @@
 """
 
 def test_DocTestSuite():
-    """DocTestSuite creates a unittest test suite into a doctest.
+    """DocTestSuite creates a unittest test suite from a doctest.
 
        We create a Suite by providing a module.  A module can be provided
        by passing a module object:
@@ -995,19 +995,19 @@
          >>> import test.sample_doctest
          >>> suite = doctest.DocTestSuite(test.sample_doctest)
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=3>
+         <unittest.TestResult run=9 errors=0 failures=4>
 
        We can also supply the module by name:
 
          >>> suite = doctest.DocTestSuite('test.sample_doctest')
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=3>
+         <unittest.TestResult run=9 errors=0 failures=4>
 
        We can use the current module:
 
          >>> suite = test.sample_doctest.test_suite()
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=3>
+         <unittest.TestResult run=9 errors=0 failures=4>
 
        We can supply global variables.  If we pass globs, they will be
        used instead of the module globals.  Here we'll pass an empty
@@ -1015,7 +1015,7 @@
 
          >>> suite = doctest.DocTestSuite('test.sample_doctest', globs={})
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=4>
+         <unittest.TestResult run=9 errors=0 failures=5>
 
        Alternatively, we can provide extra globals.  Here we'll make an
        error go away by providing an extra global variable:
@@ -1023,17 +1023,17 @@
          >>> suite = doctest.DocTestSuite('test.sample_doctest',
          ...                              extraglobs={'y': 1})
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=2>
+         <unittest.TestResult run=9 errors=0 failures=3>
 
        You can pass option flags.  Here we'll cause an extra error
        by disabling the blank-line feature:
 
          >>> suite = doctest.DocTestSuite('test.sample_doctest',
-         ...                         optionflags=doctest.DONT_ACCEPT_BLANKLINE)
+         ...                      optionflags=doctest.DONT_ACCEPT_BLANKLINE)
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=4>
+         <unittest.TestResult run=9 errors=0 failures=5>
 
-       You can supply setUp and teatDoen functions:
+       You can supply setUp and tearDown functions:
 
          >>> def setUp():
          ...     import test.test_doctest
@@ -1048,7 +1048,7 @@
          >>> suite = doctest.DocTestSuite('test.sample_doctest',
          ...      setUp=setUp, tearDown=tearDown)
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=7 errors=0 failures=2>
+         <unittest.TestResult run=9 errors=0 failures=3>
 
        But the tearDown restores sanity:
 
@@ -1059,15 +1059,18 @@
          AttributeError: 'module' object has no attribute 'sillySetup'
 
        Finally, you can provide an alternate test finder.  Here we'll
-       use a custom test_finder to to run just the test named bar:
+       use a custom test_finder to to run just the test named bar.
+       However, the test in the module docstring, and the two tests
+       in the module __test__ dict, aren't filtered, so we actually
+       run three tests besides bar's.  The filtering mechanisms are
+       poorly conceived, and will go away someday.
 
          >>> finder = doctest.DocTestFinder(
          ...    namefilter=lambda prefix, base: base!='bar')
          >>> suite = doctest.DocTestSuite('test.sample_doctest',
          ...                              test_finder=finder)
          >>> suite.run(unittest.TestResult())
-         <unittest.TestResult run=2 errors=0 failures=0>
-
+         <unittest.TestResult run=4 errors=0 failures=1>
        """
 
 def test_DocFileSuite():
