Add some cross-references to the docs.  Simplify the python code equivalent for izip().  Supply an optional argument for the nth() recipe.
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index 6fa1978..299d769 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -427,8 +427,7 @@
           # izip('ABCD', 'xy') --> Ax By
           iterables = map(iter, iterables)
           while iterables:
-              result = [it.next() for it in iterables]
-              yield tuple(result)
+              yield yield tuple(map(next, iterables))
 
    .. versionchanged:: 2.4
       When no iterables are specified, returns a zero length iterator instead of
@@ -702,9 +701,9 @@
        "Return function(0), function(1), ..."
        return imap(function, count(start))
 
-   def nth(iterable, n):
-       "Returns the nth item or None"
-       return next(islice(iterable, n, None), None)
+   def nth(iterable, n, default=None):
+       "Returns the nth item or a default value"
+       return next(islice(iterable, n, None), default)
 
    def quantify(iterable, pred=bool):
        "Count how many times the predicate is true"