Fix most of the bsddb3 tests.
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index 8eb7ed2..354229d 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -29,7 +29,7 @@
 
 #------------------------------------------------------------------------
 
-import cPickle
+import pickle
 try:
     from UserDict import DictMixin
 except ImportError:
@@ -104,11 +104,11 @@
 
     def __getitem__(self, key):
         data = self.db[key]
-        return cPickle.loads(data)
+        return pickle.loads(data)
 
 
     def __setitem__(self, key, value):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         self.db[key] = data
 
 
@@ -131,7 +131,7 @@
         newitems = []
 
         for k, v in items:
-            newitems.append( (k, cPickle.loads(v)) )
+            newitems.append( (k, pickle.loads(v)) )
         return newitems
 
     def values(self, txn=None):
@@ -140,13 +140,13 @@
         else:
             values = self.db.values()
 
-        return map(cPickle.loads, values)
+        return map(pickle.loads, values)
 
     #-----------------------------------
     # Other methods
 
     def __append(self, value, txn=None):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         return self.db.append(data, txn)
 
     def append(self, value, txn=None):
@@ -158,7 +158,7 @@
 
     def associate(self, secondaryDB, callback, flags=0):
         def _shelf_callback(priKey, priData, realCallback=callback):
-            data = cPickle.loads(priData)
+            data = pickle.loads(priData)
             return realCallback(priKey, data)
         return self.db.associate(secondaryDB, _shelf_callback, flags)
 
@@ -171,15 +171,15 @@
         # off.
         data = self.db.get(*args, **kw)
         try:
-            return cPickle.loads(data)
-        except (TypeError, cPickle.UnpicklingError):
+            return pickle.loads(data)
+        except (TypeError, pickle.UnpicklingError, EOFError):
             return data  # we may be getting the default value, or None,
                          # so it doesn't need unpickled.
 
     def get_both(self, key, value, txn=None, flags=0):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         data = self.db.get(key, data, txn, flags)
-        return cPickle.loads(data)
+        return pickle.loads(data)
 
 
     def cursor(self, txn=None, flags=0):
@@ -189,7 +189,7 @@
 
 
     def put(self, key, value, txn=None, flags=0):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         return self.db.put(key, data, txn, flags)
 
 
@@ -233,7 +233,7 @@
 
 
     def put(self, key, value, flags=0):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         return self.dbc.put(key, data, flags)
 
 
@@ -251,7 +251,7 @@
         return self._extract(rec)
 
     def get_3(self, key, value, flags):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         rec = self.dbc.get(key, flags)
         return self._extract(rec)
 
@@ -268,7 +268,7 @@
 
 
     def get_both(self, key, value, flags=0):
-        data = cPickle.dumps(value, self.binary)
+        data = pickle.dumps(value, self.binary)
         rec = self.dbc.get_both(key, flags)
         return self._extract(rec)
 
@@ -292,7 +292,7 @@
             return None
         else:
             key, data = rec
-            return key, cPickle.loads(data)
+            return key, pickle.loads(data)
 
     #----------------------------------------------
     # Methods allowed to pass-through to self.dbc