Add PyObject_Not().
diff --git a/Include/abstract.h b/Include/abstract.h
index 975c562..3491724 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -382,6 +382,18 @@
 	 
        */
 
+     /* Implemented elsewhere:
+
+     int PyObject_Not(PyObject *o);
+
+	 Returns 0 if the object, o, is considered to be true, and
+	 1 otherwise. This is equivalent to the Python expression:
+	 not o
+
+	 This function always succeeds.
+	 
+       */
+
      PyObject *PyObject_Type Py_PROTO((PyObject *o));
 
        /*
diff --git a/Include/object.h b/Include/object.h
index f2a83d7..18cca9f 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -271,6 +271,7 @@
 extern int PyObject_HasAttr Py_PROTO((PyObject *, PyObject *));
 extern long PyObject_Hash Py_PROTO((PyObject *));
 extern int PyObject_IsTrue Py_PROTO((PyObject *));
+extern int PyObject_Not Py_PROTO((PyObject *));
 extern int PyCallable_Check Py_PROTO((PyObject *));
 extern int PyNumber_Coerce Py_PROTO((PyObject **, PyObject **));
 extern int PyNumber_CoerceEx Py_PROTO((PyObject **, PyObject **));
diff --git a/Objects/object.c b/Objects/object.c
index 0de095f..aa73740 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -470,6 +470,20 @@
 	return res;
 }
 
+/* equivalent of 'not v' 
+   Return -1 if an error occurred */
+
+int
+PyObject_Not(v)
+	PyObject *v;
+{
+	int res;
+	res = PyObject_IsTrue(v);
+	if (res < 0)
+		return res;
+	return res == 0;
+}
+
 /* Coerce two numeric types to the "larger" one.
    Increment the reference count on each argument.
    Return -1 and raise an exception if no coercion is possible