Closes SF bug #634069 reporting the docs on the ** operator were out
of date and did not reflect the current CPython implementation.
diff --git a/Doc/ref/ref5.tex b/Doc/ref/ref5.tex
index f554ab4..af1fa19 100644
--- a/Doc/ref/ref5.tex
+++ b/Doc/ref/ref5.tex
@@ -599,10 +599,20 @@
 \function{pow()} function, when called with two arguments: it yields
 its left argument raised to the power of its right argument.  The
 numeric arguments are first converted to a common type.  The result
-type is that of the arguments after coercion; if the result is not
-expressible in that type (as in raising an integer to a negative
-power, or a negative floating point number to a broken power), a
-\exception{TypeError} exception is raised.
+type is that of the arguments after coercion.
+
+With mixed operand types, the coercion rules for binary arithmetic
+operators apply. For int and long int operands, the result has the
+same type as the operands (after coercion) unless the second argument
+is negative; in that case, all arguments are converted to float and a
+float result is delivered. For example, \code{10**2} returns \code{100},
+but \code{10**-2} returns \code{0.01}. (This last feature was added in
+Python 2.2. In Python 2.1 and before, if both arguments were of integer
+types and the second argument was negative, an exception was raised).
+
+Raising \code{0.0} to a negative power results in a
+\exception{ZeroDivisionError}.  Raising a negative number to a
+fractional power results in a \exception{ValueError}.
 
 
 \section{Unary arithmetic operations \label{unary}}