diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index 947697a..f3cba56 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -5,6 +5,10 @@
     ...    yield 1
     ...    yield 2
 
+    >>> for i in f():
+    ...     print i
+    1
+    2
     >>> g = f()
     >>> g.next()
     1
@@ -203,7 +207,6 @@
     [1, 2, 4, 5, 8, 9, 10, 11]
     >>>
 
-
 Guido's binary tree example.
 
     >>> # A binary tree class.
@@ -301,6 +304,18 @@
 ...     yield 3
 >>> list(g())
 [1, 2, 3]
+
+A generator can't be resumed while it's already running.
+
+>>> def g():
+...     i = me.next()
+...     yield i
+>>> me = g()
+>>> me.next()
+Traceback (most recent call last):
+ ...
+  File "<string>", line 2, in g
+ValueError: generator already executing
 """
 
 # Fun tests (for sufficiently warped notions of "fun").
@@ -338,6 +353,58 @@
 >>> primes = sieve(intsfrom(2))
 >>> firstn(primes, 20)
 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
+
+Another famous problem:  generate all integers of the form
+    2**i * 3**j  * 5**k
+in increasing order, where i,j,k >= 0.  Trickier than it may look at first!
+Try writing it without generators, and correctly, and without generating
+3 internal results for each result output.
+
+>>> def times(n, g):
+...     for i in g:
+...         yield n * i
+>>> firstn(times(10, intsfrom(1)), 10)
+[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+
+>>> def merge(g, h):
+...     ng = g.next()
+...     nh = h.next()
+...     while 1:
+...         if ng < nh:
+...             yield ng
+...             ng = g.next()
+...         elif ng > nh:
+...             yield nh
+...             nh = h.next()
+...         else:
+...             yield ng
+...             ng = g.next()
+...             nh = h.next()
+
+This works, but is doing a whale of a lot or redundant work -- it's not
+clear how to get the internal uses of m235 to share a single generator.
+Note that me_times2 (etc) each need to see every element in the result
+sequence.  So this is an example where lazy lists are more natural (you
+can look at the head of a lazy list any number of times).
+
+>>> def m235():
+...     yield 1
+...     me_times2 = times(2, m235())
+...     me_times3 = times(3, m235())
+...     me_times5 = times(5, m235())
+...     for i in merge(merge(me_times2,
+...                          me_times3),
+...                    me_times5):
+...         yield i
+
+>>> result = m235()
+>>> for i in range(5):
+...     print firstn(result, 15)
+[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24]
+[25, 27, 30, 32, 36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80]
+[81, 90, 96, 100, 108, 120, 125, 128, 135, 144, 150, 160, 162, 180, 192]
+[200, 216, 225, 240, 243, 250, 256, 270, 288, 300, 320, 324, 360, 375, 384]
+[400, 405, 432, 450, 480, 486, 500, 512, 540, 576, 600, 625, 640, 648, 675]
 """
 
 __test__ = {"tut": tutorial_tests,
