diff --git a/Lib/copy_reg.py b/Lib/copy_reg.py
index f4661ed..8760e62 100644
--- a/Lib/copy_reg.py
+++ b/Lib/copy_reg.py
@@ -23,18 +23,12 @@
     if not callable(object):
         raise TypeError("constructors must be callable")
 
-# Example: provide pickling support for complex numbers.
+# Example: provide pickling support for bytes objects.
 
-try:
-    complex
-except NameError:
-    pass
-else:
+def _pickle_bytes(b):
+    return bytes, (str(b),)
 
-    def pickle_complex(c):
-        return complex, (c.real, c.imag)
-
-    pickle(complex, pickle_complex, complex)
+pickle(bytes, _pickle_bytes)
 
 # Support for pickling new-style objects
 
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py
index e90bcee..682f5d7 100644
--- a/Lib/test/test_bytes.py
+++ b/Lib/test/test_bytes.py
@@ -3,6 +3,8 @@
 import os
 import re
 import sys
+import pickle
+import cPickle
 import tempfile
 import unittest
 import test.test_support
@@ -633,6 +635,14 @@
         self.assertEqual(b.rpartition(b'ss'), (b'missi', b'ss', b'ippi'))
         self.assertEqual(b.rpartition(b'i'), (b'mississipp', b'i', b''))
 
+    def test_pickling(self):
+        for pm in pickle, cPickle:
+            for proto in range(pm.HIGHEST_PROTOCOL):
+                for b in b"", b"a", b"abc", b"\xffab\x80", b"\0\0\377\0\0":
+                    ps = pm.dumps(b, proto)
+                    q = pm.loads(ps)
+                    self.assertEqual(b, q)
+
     # Optimizations:
     # __iter__? (optimization)
     # __reversed__? (optimization)
@@ -640,8 +650,6 @@
     # XXX Some string methods?  (Those that don't use character properties)
     # lstrip, rstrip, strip?? (currently un-pepped)
     # join
-
-    # XXX pickle and marshal support?
     
     # There are tests in string_tests.py that are more
     # comprehensive for things like split, partition, etc.
