Adds support for the DBEnv->set_timeout() method.
diff --git a/Lib/bsddb/test/test_lock.py b/Lib/bsddb/test/test_lock.py
index af10bea..008f89d 100644
--- a/Lib/bsddb/test/test_lock.py
+++ b/Lib/bsddb/test/test_lock.py
@@ -97,7 +97,13 @@
         for t in threads:
             t.join()
 
-
+    def test03_set_timeout(self):
+        # test that the set_timeout call works
+        if hasattr(self.env, 'set_timeout'):
+            self.env.set_timeout(0, db.DB_SET_LOCK_TIMEOUT)
+            self.env.set_timeout(0, db.DB_SET_TXN_TIMEOUT)
+            self.env.set_timeout(123456, db.DB_SET_LOCK_TIMEOUT)
+            self.env.set_timeout(7890123, db.DB_SET_TXN_TIMEOUT)
 
     def theThread(self, sleepTime, lockType):
         name = currentThread().getName()
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c
index 744d854..0df7fa2 100644
--- a/Modules/_bsddb.c
+++ b/Modules/_bsddb.c
@@ -3163,6 +3163,29 @@
 }
 #endif /* DBVER >= 41 */
 
+#if (DBVER >= 40)
+static PyObject*
+DBEnv_set_timeout(DBEnvObject* self, PyObject* args, PyObject* kwargs)
+{
+    int err;
+    u_int32_t flags=0;
+    u_int32_t timeout = 0;
+    char* kwnames[] = { "timeout", "flags", NULL };
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:set_timeout", kwnames,
+		&timeout, &flags)) {
+	return NULL;
+    }
+
+    MYDB_BEGIN_ALLOW_THREADS;
+    err = self->db_env->set_timeout(self->db_env, (db_timeout_t)timeout, flags);
+    MYDB_END_ALLOW_THREADS;
+
+    RETURN_IF_ERR();
+    RETURN_NONE();
+}
+#endif /* DBVER >= 40 */
+
 static PyObject*
 DBEnv_set_cachesize(DBEnvObject* self, PyObject* args)
 {
@@ -3956,6 +3979,9 @@
     {"dbrename",        (PyCFunction)DBEnv_dbrename,         METH_VARARGS|METH_KEYWORDS},
     {"set_encrypt",     (PyCFunction)DBEnv_set_encrypt,      METH_VARARGS|METH_KEYWORDS},
 #endif
+#if (DBVER >= 40)
+    {"set_timeout",     (PyCFunction)DBEnv_set_timeout,      METH_VARARGS|METH_KEYWORDS},
+#endif
     {"set_cachesize",   (PyCFunction)DBEnv_set_cachesize,    METH_VARARGS},
     {"set_data_dir",    (PyCFunction)DBEnv_set_data_dir,     METH_VARARGS},
 #if (DBVER >= 32)