New restriction on pow(x, y, z):  If z is not None, x and y must be of
integer types, and y must be >= 0.  See discussion at
http://sf.net/tracker/index.php?func=detail&aid=457066&group_id=5470&atid=105470
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 108e658..eaf869f 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -575,6 +575,11 @@
 	CONVERT_TO_LONG(v, iv);
 	CONVERT_TO_LONG(w, iw);
 	if (iw < 0) {
+		if ((PyObject *)z != Py_None) {
+			PyErr_SetString(PyExc_TypeError, "integer pow() arg "
+			     "3 must not be specified when arg 2 is < 0");
+			return NULL;
+		}
 		/* Return a float.  This works because we know that
 		   this calls float_pow() which converts its
 		   arguments to double. */