diff --git a/Lib/pickle.py b/Lib/pickle.py
index da7bdb6..45bc38c 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -167,25 +167,29 @@
 
 class Pickler:
 
-    def __init__(self, file, proto=1):
+    def __init__(self, file, proto=0):
         """This takes a file-like object for writing a pickle data stream.
 
         The optional proto argument tells the pickler to use the given
         protocol; supported protocols are 0, 1, 2.  The default
-        protocol is 1 (in previous Python versions the default was 0).
+        protocol is 0, to be backwards compatible.  (Protocol 0 is the
+        only protocol that can be written to a file opened in text
+        mode and read back successfully.)
 
         Protocol 1 is more efficient than protocol 0; protocol 2 is
-        more efficient than protocol 1.  Protocol 2 is not the default
-        because it is not supported by older Python versions.
+        more efficient than protocol 1.
 
-        XXX Protocol 2 is not yet implemented.
+        Specifying a negative protocol version selects the highest
+        protocol version supported.
 
         The file parameter must have a write() method that accepts a single
         string argument.  It can thus be an open file object, a StringIO
         object, or any other custom object that meets this interface.
 
         """
-        if proto not in (0, 1, 2):
+        if proto < 0:
+            proto = 2
+        elif proto not in (0, 1, 2):
             raise ValueError, "pickle protocol must be 0, 1 or 2"
         self.write = file.write
         self.memo = {}
@@ -1455,10 +1459,10 @@
 except ImportError:
     from StringIO import StringIO
 
-def dump(obj, file, proto=1):
+def dump(obj, file, proto=0):
     Pickler(file, proto).dump(obj)
 
-def dumps(obj, proto=1):
+def dumps(obj, proto=0):
     file = StringIO()
     Pickler(file, proto).dump(obj)
     return file.getvalue()
