diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst
index 2e9547c6..27626e0 100644
--- a/Doc/library/2to3.rst
+++ b/Doc/library/2to3.rst
@@ -53,13 +53,17 @@
 Comments and and exact indentation are preserved throughout the translation
 process.
 
-By default, 2to3 runs a set of predefined fixers.  The :option:`-l` flag
-lists all avaible fixers.  An explicit set of fixers to run can be given by use
-of the :option:`-f` flag.  The following example runs only the ``imports`` and
-``has_key`` fixers::
+By default, 2to3 runs a set of predefined fixers.  The :option:`-l` flag lists
+all avaible fixers.  An explicit set of fixers to run can be given with
+:option:`-f`.  Likewise the :option:`-x` explicitly disables a fixer.  The
+following example runs only the ``imports`` and ``has_key`` fixers::
 
    $ 2to3 -f imports -f has_key example.py
 
+This command runs every fixer except the ``apply`` fixer::
+
+   $ 2to3 -x apply example.py
+
 Some fixers are *explicit*, meaning they aren't run be default and must be
 listed on the command line to be run.  Here, in addition to the default fixers,
 the ``idioms`` fixer is run::
@@ -78,8 +82,8 @@
 the module to be valid Python.  For example, doctest like examples in a reST
 document could also be refactored with this option.
 
-The :option:`-v` option enables the output of more information on the
-translation process.
+The :option:`-v` option enables output of more information on the translation
+process.
 
 When the :option:`-p` is passed, 2to3 treats ``print`` as a function instead of
 a statement.  This is useful when ``from __future__ import print_function`` is
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index 8bcc2ac..2edbbac 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -228,7 +228,9 @@
 
 In addition to the above, deques support iteration, pickling, ``len(d)``,
 ``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing with
-the :keyword:`in` operator, and subscript references such as ``d[-1]``.
+the :keyword:`in` operator, and subscript references such as ``d[-1]``.  Indexed
+access is O(1) at both ends but slows to O(n) in the middle.  For fast random
+access, use lists instead.
 
 Example:
 
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index d3009b7..500b83f 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -677,7 +677,8 @@
    opcode finds the keyword parameters first.  For each keyword argument, the value
    is on top of the key.  Below the keyword parameters, the positional parameters
    are on the stack, with the right-most parameter on top.  Below the parameters,
-   the function object to call is on the stack.
+   the function object to call is on the stack.  Pops all function arguments, and 
+   the function itself off the stack, and pushes the return value.
 
 
 .. opcode:: MAKE_FUNCTION (argc)
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 818ce45..5b683ab 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -889,7 +889,8 @@
    best explained with an example::
 
       class C(object):
-          def __init__(self): self._x = None
+          def __init__(self):
+              self._x = None
 
           @property
           def x(self):
diff --git a/Doc/library/heapq.rst b/Doc/library/heapq.rst
index 7ac38ac..8e5ce95 100644
--- a/Doc/library/heapq.rst
+++ b/Doc/library/heapq.rst
@@ -93,7 +93,7 @@
 
    Merge multiple sorted inputs into a single sorted output (for example, merge
    timestamped entries from multiple log files).  Returns an :term:`iterator`
-   over over the sorted values.
+   over the sorted values.
 
    Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, does
    not pull the data into memory all at once, and assumes that each of the input
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index d91c823..4ccc185 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -376,8 +376,8 @@
 
    Example usage of some of the methods of :class:`Process`::
 
-       >>> import processing, time, signal
-       >>> p = processing.Process(target=time.sleep, args=(1000,))
+       >>> import multiprocessing, time, signal
+       >>> p = multiprocessing.Process(target=time.sleep, args=(1000,))
        >>> print(p, p.is_alive())
        <Process(Process-1, initial)> False
        >>> p.start()
@@ -1779,12 +1779,12 @@
 
 Below is an example session with logging turned on::
 
-    >>> import processing, logging
-    >>> logger = processing.getLogger()
+    >>> import multiprocessing, logging
+    >>> logger = multiprocessing.getLogger()
     >>> logger.setLevel(logging.INFO)
     >>> logger.warning('doomed')
     [WARNING/MainProcess] doomed
-    >>> m = processing.Manager()
+    >>> m = multiprocessing.Manager()
     [INFO/SyncManager-1] child process calling self.run()
     [INFO/SyncManager-1] manager bound to '\\\\.\\pipe\\pyc-2776-0-lj0tfa'
     >>> del m
