diff --git a/Lib/pickle.py b/Lib/pickle.py
index b9bafce..863702d 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -37,7 +37,7 @@
 __all__ = ["PickleError", "PicklingError", "UnpicklingError", "Pickler",
            "Unpickler", "dump", "dumps", "load", "loads"]
 
-# These are purely informational; no code usues these
+# These are purely informational; no code uses these.
 format_version = "2.0"                  # File format version we write
 compatible_formats = ["1.0",            # Original protocol 0
                       "1.1",            # Protocol 0 with INST added
@@ -47,7 +47,7 @@
                       ]                 # Old format versions we can read
 
 # Why use struct.pack() for pickling but marshal.loads() for
-# unpickling?  struct.pack() is 40% faster than marshal.loads(), but
+# unpickling?  struct.pack() is 40% faster than marshal.dumps(), but
 # marshal.loads() is twice as fast as struct.unpack()!
 mloads = marshal.loads
 
@@ -73,6 +73,8 @@
     """
     pass
 
+# An instance of _Stop is raised by Unpickler.load_stop() in response to
+# the STOP opcode, passing the object that is the result of unpickling.
 class _Stop(Exception):
     def __init__(self, value):
         self.value = value
@@ -138,7 +140,7 @@
 TRUE            = 'I01\n'  # not an opcode; see INT docs in pickletools.py
 FALSE           = 'I00\n'  # not an opcode; see INT docs in pickletools.py
 
-# Protocol 2 (not yet implemented).
+# Protocol 2 (XXX not yet implemented).
 
 PROTO           = '\x80'  # identify pickle protocol
 NEWOBJ          = '\x81'  # build object by applying cls.__new__ to argtuple
@@ -772,6 +774,9 @@
         memo[id(memo)]=[x]
 
 
+# A cache for whichmodule(), mapping a function object to the name of
+# the module in which the function was found.
+
 classmap = {} # called classmap for backwards compatibility
 
 def whichmodule(func, funcname):
@@ -780,7 +785,7 @@
     Search sys.modules for the module.
     Cache in classmap.
     Return a module name.
-    If the function cannot be found, return __main__.
+    If the function cannot be found, return "__main__".
     """
     if func in classmap:
         return classmap[func]
diff --git a/Lib/pickletools.py b/Lib/pickletools.py
index b3c708d..183db10 100644
--- a/Lib/pickletools.py
+++ b/Lib/pickletools.py
@@ -603,29 +603,7 @@
 
 # Protocol 2 formats
 
-def decode_long(data):
-    r"""Decode a long from a two's complement little-endian binary string.
-    >>> decode_long("\xff\x00")
-    255L
-    >>> decode_long("\xff\x7f")
-    32767L
-    >>> decode_long("\x00\xff")
-    -256L
-    >>> decode_long("\x00\x80")
-    -32768L
-    >>> decode_long("\x80")
-    -128L
-    >>> decode_long("\x7f")
-    127L
-    """
-    x = 0L
-    i = 0L
-    for c in data:
-        x |= long(ord(c)) << i
-        i += 8L
-    if data and ord(c) >= 0x80:
-        x -= 1L << i
-    return x
+from pickle import decode_long
 
 def read_long1(f):
     r"""
@@ -1793,6 +1771,7 @@
         raise ValueError("\n".join(msg))
 
 assure_pickle_consistency()
+del assure_pickle_consistency
 
 ##############################################################################
 # A pickle opcode generator.
