SF patch #820195 by Wojtek Walczak (gminick at users.sourceforge.net):
make obj.__contains__() returns True/False instead of 1/0.
diff --git a/Misc/ACKS b/Misc/ACKS
index 74bfbfa..67c1cec 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -572,6 +572,7 @@
 Charles Waldman
 Richard Walker
 Larry Wall
+Wojtek Walczak
 Greg Ward
 Barry Warsaw
 Steve Waterbury
diff --git a/Misc/NEWS b/Misc/NEWS
index 5a8379e..8662f10 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,9 @@
 - zip() with no arguments now returns an empty list instead of raising
   a TypeError exception.
 
+- obj.__contains__() now returns True/False instead of 1/0.  SF patch
+  820195.
+
 Extension modules
 -----------------
 
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index af255f1..2708cdc 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3569,14 +3569,16 @@
 {
 	objobjproc func = (objobjproc)wrapped;
 	int res;
-	PyObject *value;
+	PyObject *value, *ret;
 
 	if (!PyArg_ParseTuple(args, "O", &value))
 		return NULL;
 	res = (*func)(self, value);
 	if (res == -1 && PyErr_Occurred())
 		return NULL;
-	return PyInt_FromLong((long)res);
+	ret = PyObject_IsTrue(PyInt_FromLong((long)res)) ? Py_True : Py_False;
+	Py_INCREF(ret);
+	return ret;
 }
 
 static PyObject *