Remove inst_persistent_id() WANNI (we ain't never needed it).
Add some simple tests of the persistence hooks.
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 954da4e..a8b2b51 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -188,14 +188,13 @@
 
         return GET + `i` + '\n'
 
-    def save(self, object, pers_save = 0):
+    def save(self, object):
         memo = self.memo
 
-        if not pers_save:
-            pid = self.persistent_id(object)
-            if pid is not None:
-                self.save_pers(pid)
-                return
+        pid = self.persistent_id(object)
+        if pid is not None:
+            self.save_pers(pid)
+            return
 
         d = id(object)
 
@@ -215,11 +214,6 @@
         try:
             f = self.dispatch[t]
         except KeyError:
-            pid = self.inst_persistent_id(object)
-            if pid is not None:
-                self.save_pers(pid)
-                return
-
             try:
                 issc = issubclass(t, TypeType)
             except TypeError: # t is not a class
@@ -279,14 +273,11 @@
     def persistent_id(self, object):
         return None
 
-    def inst_persistent_id(self, object):
-        return None
-
     def save_pers(self, pid):
         if not self.bin:
             self.write(PERSID + str(pid) + '\n')
         else:
-            self.save(pid, 1)
+            self.save(pid)
             self.write(BINPERSID)
 
     def save_reduce(self, callable, arg_tup, state = None):
diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py
index 87c73c2..d61f29b 100644
--- a/Lib/test/test_pickle.py
+++ b/Lib/test/test_pickle.py
@@ -1,7 +1,8 @@
 import pickle
 import unittest
 from cStringIO import StringIO
-from test.pickletester import AbstractPickleTests, AbstractPickleModuleTests
+from test.pickletester import AbstractPickleTests, AbstractPickleModuleTests, \
+     AbstractPersistentPicklerTests
 from test import test_support
 
 class PickleTests(AbstractPickleTests, AbstractPickleModuleTests):
@@ -29,11 +30,32 @@
         u = pickle.Unpickler(f)
         return u.load()
 
+class PersPicklerTests(AbstractPersistentPicklerTests):
+
+    def dumps(self, arg, bin=0):
+        class PersPickler(pickle.Pickler):
+            def persistent_id(subself, obj):
+                return self.persistent_id(obj)
+        f = StringIO()
+        p = PersPickler(f, bin)
+        p.dump(arg)
+        f.seek(0)
+        return f.read()
+
+    def loads(self, buf):
+        class PersUnpickler(pickle.Unpickler):
+            def persistent_load(subself, obj):
+                return self.persistent_load(obj)
+        f = StringIO(buf)
+        u = PersUnpickler(f)
+        return u.load()
+
 def test_main():
     loader = unittest.TestLoader()
     suite = unittest.TestSuite()
     suite.addTest(loader.loadTestsFromTestCase(PickleTests))
     suite.addTest(loader.loadTestsFromTestCase(PicklerTests))
+    suite.addTest(loader.loadTestsFromTestCase(PersPicklerTests))
     test_support.run_suite(suite)
 
 if __name__ == "__main__":