Fix compatibility for earlier versions of Python (than 2.3), which
doesn't have UserDict.DictMixin.
diff --git a/Lib/bsddb/dbobj.py b/Lib/bsddb/dbobj.py
index f274d56..889e554 100644
--- a/Lib/bsddb/dbobj.py
+++ b/Lib/bsddb/dbobj.py
@@ -16,7 +16,12 @@
 #
 
 import db
-from UserDict import DictMixin
+
+try:
+    from UserDict import DictMixin
+except ImportError:
+    # DictMixin is new in Python 2.3
+    class DictMixin: pass
 
 class DBEnv:
     def __init__(self, *args, **kwargs):
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index 34dc607..efaa003 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -30,7 +30,11 @@
 #------------------------------------------------------------------------
 
 import cPickle
-from UserDict import DictMixin
+try:
+    from UserDict import DictMixin
+except ImportError:
+    # DictMixin is new in Python 2.3
+    class DictMixin: pass
 try:
     # For Python 2.3
     from bsddb import db
@@ -77,8 +81,7 @@
 #---------------------------------------------------------------------------
 
 class DBShelf(DictMixin):
-    """
-    A shelf to hold pickled objects, built upon a bsddb DB object.  It
+    """A shelf to hold pickled objects, built upon a bsddb DB object.  It
     automatically pickles/unpickles data objects going to/from the DB.
     """
     def __init__(self, dbenv=None):
@@ -91,7 +94,9 @@
 
 
     def __getattr__(self, name):
-        """Many methods we can just pass through to the DB object.  (See below)"""
+        """Many methods we can just pass through to the DB object.
+        (See below)
+        """
         return getattr(self.db, name)