diff --git a/Lib/doctest.py b/Lib/doctest.py
index aa523a6..c033b0d 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -552,12 +552,10 @@
             (source, want) = self._parse_example(m, name, lineno)
             # Extract extra options from the source.
             options = self._find_options(source, name, lineno)
-            # If it contains no real source, then ignore it.
-            if self._IS_BLANK_OR_COMMENT(source):
-                continue
             # Create an Example, and add it to the list.
-            examples.append( Example(source, want, lineno,
-                                     len(m.group('indent')), options) )
+            if not self._IS_BLANK_OR_COMMENT(source):
+                examples.append( Example(source, want, lineno,
+                                         len(m.group('indent')), options) )
             # Update lineno (lines inside this example)
             lineno += string.count('\n', m.start(), m.end())
             # Update charno.
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 8e651d0..dec9110 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -253,7 +253,6 @@
 
 """
 
-# [XX] test that it's getting line numbers right.
 def test_DocTestFinder(): r"""
 Unit tests for the `DocTestFinder` class.
 
@@ -450,6 +449,30 @@
     >>> for t in tests:
     ...     print '%2s  %s' % (len(t.examples), t.name)
      1  SampleClass
+
+Line numbers
+~~~~~~~~~~~~
+DocTestFinder finds the line number of each example:
+
+    >>> def f(x):
+    ...     '''
+    ...     >>> x = 12
+    ...
+    ...     some text
+    ...
+    ...     >>> # examples are not created for comments & bare prompts.
+    ...     >>>
+    ...     ...
+    ...
+    ...     >>> for x in range(10):
+    ...     ...     print x,
+    ...     0 1 2 3 4 5 6 7 8 9
+    ...     >>> x/2
+    ...     6
+    ...     '''
+    >>> test = doctest.DocTestFinder().find(f)[0]
+    >>> [e.lineno for e in test.examples]
+    [1, 9, 12]
 """
 
 class test_DocTestRunner:
@@ -892,7 +915,7 @@
     ...                       optionflags=doctest.ELLIPSIS).run(test)
     **********************************************************************
     Failure in example: print range(10)       # doctest: -ELLIPSIS
-    from line #6 of f
+    from line #5 of f
     Expected: [0, 1, ..., 9]
     Got: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     (1, 2)
