diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index 61c6564..cccdf2a 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -461,7 +461,7 @@
 }
 
 static PyObject *
-bsddb_has_key(bsddbobject *dp, PyObject *args)
+bsddb_contains(bsddbobject *dp, PyObject *args)
 {
 	DBT krec, drec;
 	int status;
@@ -640,7 +640,7 @@
 static PyMethodDef bsddb_methods[] = {
 	{"close",		(PyCFunction)bsddb_close, METH_NOARGS},
 	{"keys",		(PyCFunction)bsddb_keys, METH_NOARGS},
-	{"has_key",		(PyCFunction)bsddb_has_key, METH_VARARGS},
+	{"__contains__",	(PyCFunction)bsddb_contains, METH_VARARGS},
 	{"set_location",	(PyCFunction)bsddb_set_location, METH_VARARGS},
 	{"next",		(PyCFunction)bsddb_next, METH_NOARGS},
 	{"previous",	(PyCFunction)bsddb_previous, METH_NOARGS},
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index 9086c84..a75a9bd 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -206,12 +206,12 @@
 }
 
 static PyObject *
-dbm_has_key(register dbmobject *dp, PyObject *args)
+dbm_contains(register dbmobject *dp, PyObject *args)
 {
 	datum key, val;
 	int tmp_size;
 	
-	if (!PyArg_ParseTuple(args, "s#:has_key", &key.dptr, &tmp_size))
+	if (!PyArg_ParseTuple(args, "s#:__contains__", &key.dptr, &tmp_size))
 		return NULL;
 	key.dsize = tmp_size;
         check_dbmobject_open(dp);
@@ -277,8 +277,8 @@
 	 "close()\nClose the database."},
 	{"keys",	(PyCFunction)dbm_keys,		METH_NOARGS,
 	 "keys() -> list\nReturn a list of all keys in the database."},
-	{"has_key",	(PyCFunction)dbm_has_key,	METH_VARARGS,
-	 "has_key(key} -> boolean\nReturn true iff key is in the database."},
+	{"__contains__",(PyCFunction)dbm_contains,	METH_VARARGS,
+	 "__contains__(key} -> boolean\True iff key is in the database."},
 	{"get",		(PyCFunction)dbm_get,		METH_VARARGS,
 	 "get(key[, default]) -> value\n"
 	 "Return the value for key if present, otherwise default."},
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index cfc6abc..0da93ec 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -241,16 +241,16 @@
     return v;
 }
 
-PyDoc_STRVAR(dbm_has_key__doc__,
-"has_key(key) -> boolean\n\
+PyDoc_STRVAR(dbm_contains__doc__,
+"__contains__(key) -> bool\n\
 Find out whether or not the database contains a given key.");
 
 static PyObject *
-dbm_has_key(register dbmobject *dp, PyObject *args)
+dbm_contains(register dbmobject *dp, PyObject *args)
 {
     datum key;
 
-    if (!PyArg_ParseTuple(args, "s#:has_key", &key.dptr, &key.dsize))
+    if (!PyArg_ParseTuple(args, "s#:contains", &key.dptr, &key.dsize))
         return NULL;
     check_dbmobject_open(dp);
     return PyInt_FromLong((long) gdbm_exists(dp->di_dbm, key));
@@ -355,7 +355,7 @@
 static PyMethodDef dbm_methods[] = {
     {"close",	  (PyCFunction)dbm_close,   METH_NOARGS, dbm_close__doc__},
     {"keys",	  (PyCFunction)dbm_keys,    METH_NOARGS, dbm_keys__doc__},
-    {"has_key",   (PyCFunction)dbm_has_key, METH_VARARGS, dbm_has_key__doc__},
+    {"__contains__",(PyCFunction)dbm_contains,METH_VARARGS, dbm_contains__doc__},
     {"firstkey",  (PyCFunction)dbm_firstkey,METH_NOARGS, dbm_firstkey__doc__},
     {"nextkey",	  (PyCFunction)dbm_nextkey, METH_VARARGS, dbm_nextkey__doc__},
     {"reorganize",(PyCFunction)dbm_reorganize,METH_NOARGS, dbm_reorganize__doc__},
