diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py
index c6ffbea..e1a333b 100644
--- a/Lib/test/pickletester.py
+++ b/Lib/test/pickletester.py
@@ -806,6 +806,11 @@
         finally:
             os.remove(TESTFN)
 
+    def test_highest_protocol(self):
+        # Of course this needs to be changed when HIGHEST_PROTOCOL changes.
+        self.assertEqual(self.module.HIGHEST_PROTOCOL, 2)
+
+
 class AbstractPersistentPicklerTests(unittest.TestCase):
 
     # This class defines persistent_id() and persistent_load()
diff --git a/Lib/test/test_xpickle.py b/Lib/test/test_xpickle.py
new file mode 100644
index 0000000..4db894b
--- /dev/null
+++ b/Lib/test/test_xpickle.py
@@ -0,0 +1,47 @@
+# test_pickle dumps and loads pickles via pickle.py.
+# test_cpickle does the same, but via the cPickle module.
+# This test covers the other two cases, making pickles with one module and
+# loading them via the other.
+
+import pickle
+import cPickle
+import unittest
+from cStringIO import StringIO
+
+from test import test_support
+from test.pickletester import AbstractPickleTests
+
+class DumpCPickle_LoadPickle(AbstractPickleTests):
+
+    error = KeyError
+
+    def dumps(self, arg, proto=0, fast=0):
+        # Ignore fast
+        return cPickle.dumps(arg, proto)
+
+    def loads(self, buf):
+        # Ignore fast
+        return pickle.loads(buf)
+
+class DumpPickle_LoadCPickle(AbstractPickleTests):
+
+    error = cPickle.BadPickleGet
+
+    def dumps(self, arg, proto=0, fast=0):
+        # Ignore fast
+        return pickle.dumps(arg, proto)
+
+    def loads(self, buf):
+        # Ignore fast
+        return cPickle.loads(buf)
+
+def test_main():
+    suite = unittest.TestSuite()
+    for test in (DumpCPickle_LoadPickle,
+                 DumpPickle_LoadCPickle,
+                ):
+         suite.addTest(unittest.makeSuite(test))
+    test_support.run_suite(suite)
+
+if __name__ == "__main__":
+    test_main()
