fix various doc typos #3320
diff --git a/Doc/library/__future__.rst b/Doc/library/__future__.rst
index e2349cc..d6f82a3 100644
--- a/Doc/library/__future__.rst
+++ b/Doc/library/__future__.rst
@@ -16,7 +16,7 @@
 
 * To document when incompatible changes were introduced, and when they will be
   --- or were --- made mandatory.  This is a form of executable documentation, and
-  can be inspected programatically via importing :mod:`__future__` and examining
+  can be inspected programmatically via importing :mod:`__future__` and examining
   its contents.
 
 Each statement in :file:`__future__.py` is of the form::
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index 728eeab..c5eabb4 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -316,7 +316,7 @@
 
    Send a ``QUIT`` command to the server and close the connection. This is the
    "polite" way to close a connection, but it may raise an exception of the server
-   reponds with an error to the ``QUIT`` command.  This implies a call to the
+   responds with an error to the ``QUIT`` command.  This implies a call to the
    :meth:`close` method which renders the :class:`FTP` instance useless for
    subsequent calls (see below).
 
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 6de9392..9586a34 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -1389,7 +1389,7 @@
 or use in modern Python programming.  They have been kept here to maintain
 backwards compatibility with programs written for older versions of Python.
 
-Python programmers, trainers, students and bookwriters should feel free to
+Python programmers, trainers, students and book writers should feel free to
 bypass these functions without concerns about missing something important.
 
 
diff --git a/Doc/library/imputil.rst b/Doc/library/imputil.rst
index 6a50b7a..09a41f6 100644
--- a/Doc/library/imputil.rst
+++ b/Doc/library/imputil.rst
@@ -108,7 +108,7 @@
 This code is intended to be read, not executed.  However, it does work
 -- all you need to do to enable it is "import knee".
 
-(The name is a pun on the klunkier predecessor of this module, "ni".)
+(The name is a pun on the clunkier predecessor of this module, "ni".)
 
 ::
 
diff --git a/Doc/library/macosa.rst b/Doc/library/macosa.rst
index 67475ed..250a923 100644
--- a/Doc/library/macosa.rst
+++ b/Doc/library/macosa.rst
@@ -6,10 +6,10 @@
 *********************
 
 This chapter describes the current implementation of the Open Scripting
-Architecure (OSA, also commonly referred to as AppleScript) for Python, allowing
-you to control scriptable applications from your Python program, and with a
-fairly pythonic interface. Development on this set of modules has stopped, and a
-replacement is expected for Python 2.5.
+Architecture (OSA, also commonly referred to as AppleScript) for Python,
+allowing you to control scriptable applications from your Python program,
+and with a fairly pythonic interface. Development on this set of modules has
+stopped, and a replacement is expected for Python 2.5.
 
 For a description of the various components of AppleScript and OSA, and to get
 an understanding of the architecture and terminology, you should read Apple's
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 697bfef..4b1196b 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -160,7 +160,7 @@
 
    The ``'d'`` and ``'i'`` arguments used when creating ``num`` and ``arr`` are
    typecodes of the kind used by the :mod:`array` module: ``'d'`` indicates a
-   double precision float and ``'i'`` inidicates a signed integer.  These shared
+   double precision float and ``'i'`` indicates a signed integer.  These shared
    objects will be process and thread safe.
 
    For more flexibility in using shared memory one can use the
@@ -784,7 +784,7 @@
 
    A bounded semaphore object: a clone of :class:`threading.BoundedSemaphore`.
 
-   (On Mac OSX this is indistiguishable from :class:`Semaphore` because
+   (On Mac OSX this is indistinguishable from :class:`Semaphore` because
    ``sem_getvalue()`` is not implemented on that platform).
 
 .. class:: Condition([lock])
@@ -893,8 +893,8 @@
 
 .. note::
 
-   Although it is posible to store a pointer in shared memory remember that this
-   will refer to a location in the address space of a specific process.
+   Although it is possible to store a pointer in shared memory remember that
+   this will refer to a location in the address space of a specific process.
    However, the pointer is quite likely to be invalid in the context of a second
    process and trying to dereference the pointer from the second process may
    cause a crash.
@@ -1776,7 +1776,7 @@
    handler which sends output to :data:`sys.stderr` using format
    ``'[%(levelname)s/%(processName)s] %(message)s'``.  (The logger allows use of
    the non-standard ``'%(processName)s'`` format.)  Message sent to this logger
-   will not by default propogate to the root logger.
+   will not by default propagate to the root logger.
 
    Note that on Windows child processes will only inherit the level of the
    parent process's logger -- any other customization of the logger will not be
diff --git a/Doc/library/operator.rst b/Doc/library/operator.rst
index 023bb74..4921898 100644
--- a/Doc/library/operator.rst
+++ b/Doc/library/operator.rst
@@ -630,7 +630,7 @@
 +-----------------------+-------------------------+---------------------------------+
 | Right Shift           | ``a >> b``              | ``rshift(a, b)``                |
 +-----------------------+-------------------------+---------------------------------+
-| Sequence Repitition   | ``seq * i``             | ``repeat(seq, i)``              |
+| Sequence Repetition   | ``seq * i``             | ``repeat(seq, i)``              |
 +-----------------------+-------------------------+---------------------------------+
 | Slice Assignment      | ``seq[i:j] = values``   | ``setslice(seq, i, j, values)`` |
 +-----------------------+-------------------------+---------------------------------+
diff --git a/Doc/library/select.rst b/Doc/library/select.rst
index 3fef993..5e079bb 100644
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -338,7 +338,7 @@
    +---------------------------+---------------------------------------------+
    | :const:`KQ_EV_DISABLE`    | Disablesevent                               |
    +---------------------------+---------------------------------------------+
-   | :const:`KQ_EV_ONESHOT`    | Removes event after first occurence         |
+   | :const:`KQ_EV_ONESHOT`    | Removes event after first occurrence        |
    +---------------------------+---------------------------------------------+
    | :const:`KQ_EV_CLEAR`      | Reset the state after an event is retrieved |
    +---------------------------+---------------------------------------------+
@@ -373,7 +373,7 @@
    +============================+============================================+
    | :const:`KQ_NOTE_DELETE`    | *unlink()* was called                      |
    +----------------------------+--------------------------------------------+
-   | :const:`KQ_NOTE_WRITE`     | a write occured                            |
+   | :const:`KQ_NOTE_WRITE`     | a write occurred                           |
    +----------------------------+--------------------------------------------+
    | :const:`KQ_NOTE_EXTEND`    | the file was extended                      |
    +----------------------------+--------------------------------------------+
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 2da9f9f..4dd8f58 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1543,7 +1543,7 @@
    .. method:: isdisjoint(other)
 
       Return True if the set has no elements in common with *other*.  Sets are
-      disjoint if and only if their interesection is the empty set.
+      disjoint if and only if their intersection is the empty set.
 
       .. versionadded:: 2.6
 
diff --git a/Doc/library/string.rst b/Doc/library/string.rst
index fa953f2..be9bccb 100644
--- a/Doc/library/string.rst
+++ b/Doc/library/string.rst
@@ -293,7 +293,7 @@
 
    "noses     "
    
-Which is subsitituted into the string, yielding::
+Which is substituted into the string, yielding::
    
    "A man with two noses     "
    
diff --git a/Doc/library/tix.rst b/Doc/library/tix.rst
index dea88fa..8b5355d 100644
--- a/Doc/library/tix.rst
+++ b/Doc/library/tix.rst
@@ -310,8 +310,8 @@
 .. \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl}
 
 
-Hierachical ListBox
-^^^^^^^^^^^^^^^^^^^
+Hierarchical ListBox
+^^^^^^^^^^^^^^^^^^^^
 
 
 .. class:: HList()
diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst
index 9a6d49f..7b8ced7 100644
--- a/Doc/library/turtle.rst
+++ b/Doc/library/turtle.rst
@@ -1275,7 +1275,7 @@
    ...     left(10)
    ...
    >>> for _ in range(8):
-   ...     left(45); fd(2)   # a regular octogon
+   ...     left(45); fd(2)   # a regular octagon
 
 
 Animation control
@@ -1286,7 +1286,7 @@
    :param delay: positive integer
 
    Set or return the drawing *delay* in milliseconds.  (This is approximately
-   the time interval between two consecutived canvas updates.)  The longer the
+   the time interval between two consecutive canvas updates.)  The longer the
    drawing delay, the slower the animation.
 
    Optional argument:
diff --git a/Doc/library/urllib2.rst b/Doc/library/urllib2.rst
index 6cab787..18f5af7 100644
--- a/Doc/library/urllib2.rst
+++ b/Doc/library/urllib2.rst
@@ -923,7 +923,7 @@
 obtain the HTTP proxy's URL.
 
 This example replaces the default :class:`ProxyHandler` with one that uses
-programatically-supplied proxy URLs, and adds proxy authorization support with
+programmatically-supplied proxy URLs, and adds proxy authorization support with
 :class:`ProxyBasicAuthHandler`. ::
 
    proxy_handler = urllib2.ProxyHandler({'http': 'http://www.example.com:3128/'})
diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst
index 91f5e87..a888bf9 100644
--- a/Doc/library/wsgiref.rst
+++ b/Doc/library/wsgiref.rst
@@ -415,7 +415,7 @@
       from wsgiref.validate import validator
       from wsgiref.simple_server import make_server
 
-      # Our callable object which is intentionally not compilant to the 
+      # Our callable object which is intentionally not compliant to the 
       # standard, so the validator is going to break
       def simple_app(environ, start_response):
           status = '200 OK' # HTTP Status
diff --git a/Doc/library/xmlrpclib.rst b/Doc/library/xmlrpclib.rst
index 84f662c..a227c47 100644
--- a/Doc/library/xmlrpclib.rst
+++ b/Doc/library/xmlrpclib.rst
@@ -379,7 +379,7 @@
    try:
        proxy.add(2, 5)
    except xmlrpclib.Fault, err:
-       print "A fault occured"
+       print "A fault occurred"
        print "Fault code: %d" % err.faultCode
        print "Fault string: %s" % err.faultString
 
@@ -426,7 +426,7 @@
    try:
        proxy.some_method()
    except xmlrpclib.ProtocolError, err:
-       print "A protocol error occured"
+       print "A protocol error occurred"
        print "URL: %s" % err.url
        print "HTTP/HTTPS headers: %s" % err.headers
        print "Error code: %d" % err.errcode