* db->get_types is only available in BerkeleyDB >= 4.2
 * get compiling with older versions of python again for a stand alone release.
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c
index d2b62a9..35d4b88 100644
--- a/Modules/_bsddb.c
+++ b/Modules/_bsddb.c
@@ -203,6 +203,11 @@
 
 staticforward PyTypeObject DB_Type, DBCursor_Type, DBEnv_Type, DBTxn_Type, DBLock_Type;
 
+#ifndef Py_Type
+/* for compatibility with Python 2.5 and earlier */
+#define Py_Type(ob)              (((PyObject*)(ob))->ob_type)
+#endif
+
 #define DBObject_Check(v)           (Py_Type(v) == &DB_Type)
 #define DBCursorObject_Check(v)     (Py_Type(v) == &DBCursor_Type)
 #define DBEnvObject_Check(v)        (Py_Type(v) == &DBEnv_Type)
@@ -1849,7 +1854,9 @@
         return NULL;
     }
 
+#if (DBVER >= 42)
     self->db->get_flags(self->db, &self->setflags);
+#endif
 
     self->flags = flags;
     RETURN_NONE();