#11515: Merge with 3.1.
diff --git a/Lib/ctypes/test/test_functions.py b/Lib/ctypes/test/test_functions.py
index a3b2b6a..f70cacd 100644
--- a/Lib/ctypes/test/test_functions.py
+++ b/Lib/ctypes/test/test_functions.py
@@ -116,7 +116,7 @@
         self.assertEqual(result, 21)
         self.assertEqual(type(result), int)
 
-        # You cannot assing character format codes as restype any longer
+        # You cannot assign character format codes as restype any longer
         self.assertRaises(TypeError, setattr, f, "restype", "i")
 
     def test_floatresult(self):
diff --git a/Lib/decimal.py b/Lib/decimal.py
index ea8f1d6..e6b70ca 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -6088,7 +6088,7 @@
 
 def _format_align(sign, body, spec):
     """Given an unpadded, non-aligned numeric string 'body' and sign
-    string 'sign', add padding and aligment conforming to the given
+    string 'sign', add padding and alignment conforming to the given
     format specifier dictionary 'spec' (as produced by
     parse_format_specifier).
 
diff --git a/Lib/email/mime/application.py b/Lib/email/mime/application.py
index 6f8bb8a..f5c5905 100644
--- a/Lib/email/mime/application.py
+++ b/Lib/email/mime/application.py
@@ -17,7 +17,7 @@
                  _encoder=encoders.encode_base64, **_params):
         """Create an application/* type MIME document.
 
-        _data is a string containing the raw applicatoin data.
+        _data is a string containing the raw application data.
 
         _subtype is the MIME content type subtype, defaulting to
         'octet-stream'.
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 22b5fd2..7c39887 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -613,7 +613,7 @@
         Usage example:
         >>> from ftplib import FTP_TLS
         >>> ftps = FTP_TLS('ftp.python.org')
-        >>> ftps.login()  # login anonimously previously securing control channel
+        >>> ftps.login()  # login anonymously previously securing control channel
         '230 Guest login ok, access restrictions apply.'
         >>> ftps.prot_p()  # switch to secure data connection
         '200 Protection level set to P'
diff --git a/Lib/gettext.py b/Lib/gettext.py
index 7330229..256e331 100644
--- a/Lib/gettext.py
+++ b/Lib/gettext.py
@@ -282,7 +282,7 @@
             # Note: we unconditionally convert both msgids and msgstrs to
             # Unicode using the character encoding specified in the charset
             # parameter of the Content-Type header.  The gettext documentation
-            # strongly encourages msgids to be us-ascii, but some appliations
+            # strongly encourages msgids to be us-ascii, but some applications
             # require alternative encodings (e.g. Zope's ZCML and ZPT).  For
             # traditional gettext applications, the msgid conversion will
             # cause no problems since us-ascii should always be a subset of
diff --git a/Lib/http/client.py b/Lib/http/client.py
index 36b7349..604577c 100644
--- a/Lib/http/client.py
+++ b/Lib/http/client.py
@@ -798,7 +798,7 @@
         del self._buffer[:]
         # If msg and message_body are sent in a single send() call,
         # it will avoid performance problems caused by the interaction
-        # between delayed ack and the Nagle algorithim.
+        # between delayed ack and the Nagle algorithm.
         if isinstance(message_body, bytes):
             msg += message_body
             message_body = None
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 6a1e325..a37cb1d 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -104,8 +104,8 @@
         self.top = top = WindowList.ListedToplevel(root, menu=self.menubar)
         if flist:
             self.tkinter_vars = flist.vars
-            #self.top.instance_dict makes flist.inversedict avalable to
-            #configDialog.py so it can access all EditorWindow instaces
+            #self.top.instance_dict makes flist.inversedict available to
+            #configDialog.py so it can access all EditorWindow instances
             self.top.instance_dict = flist.inversedict
         else:
             self.tkinter_vars = {}  # keys: Tkinter event names
diff --git a/Lib/idlelib/HISTORY.txt b/Lib/idlelib/HISTORY.txt
index c0faaad..01d73ed 100644
--- a/Lib/idlelib/HISTORY.txt
+++ b/Lib/idlelib/HISTORY.txt
@@ -13,7 +13,7 @@
 - New tarball released as a result of the 'revitalisation' of the IDLEfork
   project. 
 
-- This release requires python 2.1 or better. Compatability with earlier
+- This release requires python 2.1 or better. Compatibility with earlier
   versions of python (especially ancient ones like 1.5x) is no longer a
   priority in IDLEfork development.
 
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index cd7f5d6..425b8bf 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -152,7 +152,7 @@
     loader can handle.
 
     The first argument (self) must define _name which the second argument is
-    comapred against. If the comparison fails then ImportError is raised.
+    compared against. If the comparison fails then ImportError is raised.
 
     """
     def inner(self, name, *args, **kwargs):
@@ -304,7 +304,7 @@
 
     def _bytes_from_bytecode(self, fullname, data, source_mtime):
         """Return the marshalled bytes from bytecode, verifying the magic
-        number and timestamp alon the way.
+        number and timestamp along the way.
 
         If source_mtime is None then skip the timestamp check.
 
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 70a75b6..bf66734 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -315,7 +315,7 @@
 
         readermode is sometimes necessary if you are connecting to an
         NNTP server on the local machine and intend to call
-        reader-specific comamnds, such as `group'.  If you get
+        reader-specific commands, such as `group'.  If you get
         unexpected NNTPPermanentErrors, you might need to set
         readermode.
         """
@@ -1001,7 +1001,7 @@
 
         readermode is sometimes necessary if you are connecting to an
         NNTP server on the local machine and intend to call
-        reader-specific comamnds, such as `group'.  If you get
+        reader-specific commands, such as `group'.  If you get
         unexpected NNTPPermanentErrors, you might need to set
         readermode.
         """
diff --git a/Lib/socketserver.py b/Lib/socketserver.py
index 18aec29..089b3ba 100644
--- a/Lib/socketserver.py
+++ b/Lib/socketserver.py
@@ -675,7 +675,7 @@
     # A timeout to apply to the request socket, if not None.
     timeout = None
 
-    # Disable nagle algoritm for this socket, if True.
+    # Disable nagle algorithm for this socket, if True.
     # Use only when wbufsize != 0, to avoid small packets.
     disable_nagle_algorithm = False
 
diff --git a/Lib/test/crashers/recursion_limit_too_high.py b/Lib/test/crashers/recursion_limit_too_high.py
index 1fa4d32..ec64936 100644
--- a/Lib/test/crashers/recursion_limit_too_high.py
+++ b/Lib/test/crashers/recursion_limit_too_high.py
@@ -5,7 +5,7 @@
 # file handles.
 
 # The point of this example is to show that sys.setrecursionlimit() is a
-# hack, and not a robust solution.  This example simply exercices a path
+# hack, and not a robust solution.  This example simply exercises a path
 # where it takes many C-level recursions, consuming a lot of stack
 # space, for each Python-level recursion.  So 1000 times this amount of
 # stack space may be too much for standard platforms already.
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index 3325785..58ef297 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -190,7 +190,7 @@
             self.assertEqual(eval("-" + all_one_bits), -18446744073709551615)
         else:
             self.fail("How many bits *does* this machine have???")
-        # Verify treatment of contant folding on -(sys.maxsize+1)
+        # Verify treatment of constant folding on -(sys.maxsize+1)
         # i.e. -2147483648 on 32 bit platforms.  Should return int, not long.
         self.assertIsInstance(eval("%s" % (-sys.maxsize - 1)), int)
         self.assertIsInstance(eval("%s" % (-sys.maxsize - 2)), int)
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 914b249..0e2f389 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -772,7 +772,7 @@
     # see "A Monotonic Superclass Linearization for Dylan",
     # by Kim Barrett et al. (OOPSLA 1996)
     def test_consistency_with_epg(self):
-        # Testing consistentcy with EPG...
+        # Testing consistency with EPG...
         class Pane(object): pass
         class ScrollingMixin(object): pass
         class EditingMixin(object): pass
diff --git a/Lib/test/test_numeric_tower.py b/Lib/test/test_numeric_tower.py
index b0c9537..bef3d4c 100644
--- a/Lib/test/test_numeric_tower.py
+++ b/Lib/test/test_numeric_tower.py
@@ -1,4 +1,4 @@
-# test interactions betwen int, float, Decimal and Fraction
+# test interactions between int, float, Decimal and Fraction
 
 import unittest
 import random
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 544eee1..77fcbaf 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -277,7 +277,7 @@
         except TypeError:
             pass
 
-        # Use the constructr with a too-long tuple.
+        # Use the constructor with a too-long tuple.
         try:
             result2 = os.stat_result((0,1,2,3,4,5,6,7,8,9,10,11,12,13,14))
         except TypeError:
@@ -333,7 +333,7 @@
         except TypeError:
             pass
 
-        # Use the constructr with a too-long tuple.
+        # Use the constructor with a too-long tuple.
         try:
             result2 = os.statvfs_result((0,1,2,3,4,5,6,7,8,9,10,11,12,13,14))
         except TypeError:
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index 96a83b8..e4b33c9 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -7,7 +7,7 @@
 # Misc tests from Tim Peters' re.doc
 
 # WARNING: Don't change details in these tests if you don't know
-# what you're doing. Some of these tests were carefuly modeled to
+# what you're doing. Some of these tests were carefully modeled to
 # cover most of the code.
 
 import unittest
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index cc18d57..07bfe06 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -583,7 +583,7 @@
                 self.le_called = True
                 return False
 
-        # This first tries the bulitin rich set comparison, which doesn't know
+        # This first tries the builtin rich set comparison, which doesn't know
         # how to handle the custom object. Upon returning NotImplemented, the
         # corresponding comparison on the right object is invoked.
         myset = {1, 2, 3}
diff --git a/Lib/test/test_string.py b/Lib/test/test_string.py
index b495d69..f46be63 100644
--- a/Lib/test/test_string.py
+++ b/Lib/test/test_string.py
@@ -93,7 +93,7 @@
         # test all parameters used
         class CheckAllUsedFormatter(string.Formatter):
             def check_unused_args(self, used_args, args, kwargs):
-                # Track which arguments actuallly got used
+                # Track which arguments actually got used
                 unused_args = set(kwargs.keys())
                 unused_args.update(range(0, len(args)))
 
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py
index 2ce7764..c8865fe 100644
--- a/Lib/test/test_warnings.py
+++ b/Lib/test/test_warnings.py
@@ -758,7 +758,7 @@
 class BootstrapTest(unittest.TestCase):
     def test_issue_8766(self):
         # "import encodings" emits a warning whereas the warnings is not loaded
-        # or not completly loaded (warnings imports indirectly encodings by
+        # or not completely loaded (warnings imports indirectly encodings by
         # importing linecache) yet
         with support.temp_cwd() as cwd, support.temp_cwd('encodings'):
             env = os.environ.copy()
diff --git a/Lib/tkinter/__init__.py b/Lib/tkinter/__init__.py
index 2fa1712..e54c53f 100644
--- a/Lib/tkinter/__init__.py
+++ b/Lib/tkinter/__init__.py
@@ -1649,7 +1649,7 @@
 
 class Tk(Misc, Wm):
     """Toplevel widget of Tk which represents mostly the main window
-    of an appliation. It has an associated Tcl interpreter."""
+    of an application. It has an associated Tcl interpreter."""
     _w = '.'
     def __init__(self, screenName=None, baseName=None, className='Tk',
                  useTk=1, sync=0, use=None):
diff --git a/Lib/tkinter/tix.py b/Lib/tkinter/tix.py
index 3326adc..17ed230 100644
--- a/Lib/tkinter/tix.py
+++ b/Lib/tkinter/tix.py
@@ -163,7 +163,7 @@
         extensions) exist, then the image type is chosen according to the
         depth of the X display: xbm images are chosen on monochrome
         displays and color images are chosen on color displays. By using
-        tix_ getimage, you can advoid hard coding the pathnames of the
+        tix_ getimage, you can avoid hard coding the pathnames of the
         image files in your application. When successful, this command
         returns the name of the newly created image, which can be used to
         configure the -image option of the Tk and Tix widgets.
diff --git a/Lib/tkinter/ttk.py b/Lib/tkinter/ttk.py
index e10c668..0d048bb 100644
--- a/Lib/tkinter/ttk.py
+++ b/Lib/tkinter/ttk.py
@@ -993,7 +993,7 @@
         pane is either an integer index or the name of a managed subwindow.
         If kw is not given, returns a dict of the pane option values. If
         option is specified then the value for that option is returned.
-        Otherwise, sets the options to the correspoding values."""
+        Otherwise, sets the options to the corresponding values."""
         if option is not None:
             kw[option] = None
         return _val_or_dict(kw, self.tk.call, self._w, "pane", pane)
diff --git a/Lib/turtle.py b/Lib/turtle.py
index 7721748..e1fc8c5 100644
--- a/Lib/turtle.py
+++ b/Lib/turtle.py
@@ -1464,7 +1464,7 @@
         Optional argument:
         picname -- a string, name of a gif-file or "nopic".
 
-        If picname is a filename, set the corresponing image as background.
+        If picname is a filename, set the corresponding image as background.
         If picname is "nopic", delete backgroundimage, if present.
         If picname is None, return the filename of the current backgroundimage.
 
@@ -3352,7 +3352,7 @@
     def dot(self, size=None, *color):
         """Draw a dot with diameter size, using color.
 
-        Optional argumentS:
+        Optional arguments:
         size -- an integer >= 1 (if given)
         color -- a colorstring or a numeric color tuple
 
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py
index e51eef6..53c29a5 100644
--- a/Lib/xml/dom/minidom.py
+++ b/Lib/xml/dom/minidom.py
@@ -1476,7 +1476,7 @@
         return False
 
     def isId(self, aname):
-        """Returns true iff the named attribte is a DTD-style ID."""
+        """Returns true iff the named attribute is a DTD-style ID."""
         return False
 
     def isIdNS(self, namespaceURI, localName):
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
index f0b3f3f..0a0c0d6 100755
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -100,7 +100,7 @@
 
 ARCHLIST = universal_opts_map[UNIVERSALARCHS]
 
-# Source directory (asume we're in Mac/BuildScript)
+# Source directory (assume we're in Mac/BuildScript)
 SRCDIR = os.path.dirname(
         os.path.dirname(
             os.path.dirname(
diff --git a/Mac/Tools/pythonw.c b/Mac/Tools/pythonw.c
index 0b2fafc..30c82ac 100644
--- a/Mac/Tools/pythonw.c
+++ b/Mac/Tools/pythonw.c
@@ -105,8 +105,8 @@
 
     count = 1;
 
-    /* Run the real python executable using the same architure as this
-     * executable, this allows users to controle the architecture using
+    /* Run the real python executable using the same architecture as this
+     * executable, this allows users to control the architecture using
      * "arch -ppc python"
      */
 
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 737e4c3..3be270d 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -49,7 +49,7 @@
   So, there are 4 data structures holding processed arguments:
   - the inargs tuple (in PyCFuncPtr_call)
   - the callargs tuple (in PyCFuncPtr_call)
-  - the 'struct argguments' array
+  - the 'struct arguments' array
   - the 'void *' array
 
  */
diff --git a/Modules/_ctypes/libffi/ChangeLog b/Modules/_ctypes/libffi/ChangeLog
index 00ba7ef..78853c4 100644
--- a/Modules/_ctypes/libffi/ChangeLog
+++ b/Modules/_ctypes/libffi/ChangeLog
@@ -3084,7 +3084,7 @@
 
 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
 
-	* src/sh/ffi.c (ffi_prep_args): Take account into the alignement
+	* src/sh/ffi.c (ffi_prep_args): Take account into the alignment
 	for the register size.
 	(ffi_closure_helper_SYSV): Handle the structure return value
 	address correctly.
@@ -3344,7 +3344,7 @@
 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
 
 	* libffi/src/powerpc/darwin_closure.S:
-	Fix alignement bug, allocate 8 bytes for the result.
+	Fix alignment bug, allocate 8 bytes for the result.
 	* libffi/src/powerpc/aix_closure.S:
 	Likewise.
 	* libffi/src/powerpc/ffi_darwin.c:
diff --git a/Modules/_ctypes/libffi/src/dlmalloc.c b/Modules/_ctypes/libffi/src/dlmalloc.c
index 783c5c2..72673a1 100644
--- a/Modules/_ctypes/libffi/src/dlmalloc.c
+++ b/Modules/_ctypes/libffi/src/dlmalloc.c
@@ -1326,7 +1326,7 @@
   return (ptr != 0)? ptr: MFAIL;
 }
 
-/* This function supports releasing coalesed segments */
+/* This function supports releasing coalesced segments */
 static int win32munmap(void* ptr, size_t size) {
   MEMORY_BASIC_INFORMATION minfo;
   char* cptr = ptr;
@@ -1362,7 +1362,7 @@
 #define CALL_MORECORE(S)     MFAIL
 #endif /* HAVE_MORECORE */
 
-/* mstate bit set if continguous morecore disabled or failed */
+/* mstate bit set if contiguous morecore disabled or failed */
 #define USE_NONCONTIGUOUS_BIT (4U)
 
 /* segment bit set in create_mspace_with_base */
diff --git a/Modules/_ctypes/libffi/src/powerpc/ffi_darwin.c b/Modules/_ctypes/libffi/src/powerpc/ffi_darwin.c
index d84f1c3..5e77720 100644
--- a/Modules/_ctypes/libffi/src/powerpc/ffi_darwin.c
+++ b/Modules/_ctypes/libffi/src/powerpc/ffi_darwin.c
@@ -592,7 +592,7 @@
 		  +---------------------------------------+ 160
 		  | result area 8                         |
 		  +---------------------------------------+ 168
-		  | alignement to the next multiple of 16 |
+		  | alignment to the next multiple of 16  |
 SP current -->    +---------------------------------------+ 176 <- parent frame
 		  | back chain to caller 4                |
 		  +---------------------------------------+ 180
diff --git a/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c b/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
index 8953d5f..dba2184 100644
--- a/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
+++ b/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
@@ -650,7 +650,7 @@
 		  +---------------------------------------+ 160
 		  | result area 8                         |
 		  +---------------------------------------+ 168
-		  | alignement to the next multiple of 16 |
+		  | alignment to the next multiple of 16  |
 SP current -->    +---------------------------------------+ 176 <- parent frame
 		  | back chain to caller 4                |
 		  +---------------------------------------+ 180
diff --git a/Modules/_struct.c b/Modules/_struct.c
index b9dfe50..1604b90 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -1111,7 +1111,7 @@
     case '>':
     case '!': /* Network byte order is big-endian */
         return bigendian_table;
-    case '=': { /* Host byte order -- different from native in aligment! */
+    case '=': { /* Host byte order -- different from native in alignment! */
         int n = 1;
         char *p = (char *) &n;
         if (*p == 1)
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c
index ffd1ec2..d91c99a 100644
--- a/Modules/_threadmodule.c
+++ b/Modules/_threadmodule.c
@@ -823,7 +823,7 @@
                                    self->args, self->kw) < 0) {
             /* we need to get rid of ldict from thread so
                we create a new one the next time we do an attr
-               acces */
+               access */
             PyDict_DelItem(tdict, self->key);
             return NULL;
         }
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index e959321..3cdf135 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -1569,7 +1569,7 @@
                    || strcmp(s, ">>=") == 0
                    || strcmp(s, "**=") == 0);
             if (!res)
-                err_string("illegal augmmented assignment operator");
+                err_string("illegal augmented assignment operator");
         }
     }
     else {
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 39beaba..89d3f2f 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1281,7 +1281,7 @@
    win32_stat will first explicitly resolve the symlink target and then will
    call win32_lstat on that result.
 
-   The _w represent Unicode equivalents of the aformentioned ANSI functions. */
+   The _w represent Unicode equivalents of the aforementioned ANSI functions. */
 
 static int 
 win32_lstat(const char* path, struct win32_stat *result)
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
index e38587f..6969fe3 100644
--- a/Modules/zipimport.c
+++ b/Modules/zipimport.c
@@ -1172,7 +1172,7 @@
     return code;
 }
 
-/* Get the code object assoiciated with the module specified by
+/* Get the code object associated with the module specified by
    'fullname'. */
 static PyObject *
 get_module_code(ZipImporter *self, char *fullname,
diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c
index aefec94..0fb7658 100644
--- a/Objects/bytearrayobject.c
+++ b/Objects/bytearrayobject.c
@@ -2221,7 +2221,7 @@
     if (it == NULL)
         return NULL;
 
-    /* Try to determine the length of the argument. 32 is abitrary. */
+    /* Try to determine the length of the argument. 32 is arbitrary. */
     buf_size = _PyObject_LengthHint(arg, 32);
     if (buf_size == -1) {
         Py_DECREF(it);
diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
index ba33608..fcc499e 100644
--- a/Objects/bytesobject.c
+++ b/Objects/bytesobject.c
@@ -487,7 +487,7 @@
         default:
             *p++ = '\\';
             s--;
-            goto non_esc; /* an arbitry number of unescaped
+            goto non_esc; /* an arbitrary number of unescaped
                              UTF-8 bytes may follow. */
         }
     }
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 4737787..7c9506a 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -3120,7 +3120,7 @@
  * of slices, each with a->ob_size digits, and multiply the slices by a,
  * one at a time.  This gives k_mul balanced inputs to work with, and is
  * also cache-friendly (we compute one double-width slice of the result
- * at a time, then move on, never bactracking except for the helpful
+ * at a time, then move on, never backtracking except for the helpful
  * single-width slice overlap between successive partial sums).
  */
 static PyLongObject *
diff --git a/Objects/stringlib/string_format.h b/Objects/stringlib/string_format.h
index c1a6d1d..6f10727 100644
--- a/Objects/stringlib/string_format.h
+++ b/Objects/stringlib/string_format.h
@@ -6,7 +6,7 @@
 */
 
 
-/* Defines for Python 2.6 compatability */
+/* Defines for Python 2.6 compatibility */
 #if PY_VERSION_HEX < 0x03000000
 #define PyLong_FromSsize_t _PyLong_FromSsize_t
 #endif
diff --git a/PC/bdist_wininst/install.c b/PC/bdist_wininst/install.c
index 09dd161..8601ddd 100644
--- a/PC/bdist_wininst/install.c
+++ b/PC/bdist_wininst/install.c
@@ -62,7 +62,7 @@
  * instead showing the user an empty listbox to select something from.
  *
  * Finish the code so that we can use other python installations
- * additionaly to those found in the registry,
+ * additionally to those found in the registry,
  * and then #define USE_OTHER_PYTHON_VERSIONS
  *
  *  - install a help-button, which will display something meaningful
diff --git a/Parser/spark.py b/Parser/spark.py
index 7772b6e..88c1a89 100644
--- a/Parser/spark.py
+++ b/Parser/spark.py
@@ -23,7 +23,7 @@
 
 import re
 
-# Compatability with older pythons.
+# Compatibility with older pythons.
 def output(string='', end='\n'):
     sys.stdout.write(string + end)
 
diff --git a/Python/_warnings.c b/Python/_warnings.c
index 51c39e4..a797887 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -764,7 +764,7 @@
     return ret;
 }
 
-/* PyErr_Warn is only for backwards compatability and will be removed.
+/* PyErr_Warn is only for backwards compatibility and will be removed.
    Use PyErr_WarnEx instead. */
 
 #undef PyErr_Warn
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index ea095d2..8d44135 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -686,7 +686,7 @@
 Return information about the running version of Windows as a named tuple.\n\
 The members are named: major, minor, build, platform, service_pack,\n\
 service_pack_major, service_pack_minor, suite_mask, and product_type. For\n\
-backward compatibiliy, only the first 5 items are available by indexing.\n\
+backward compatibility, only the first 5 items are available by indexing.\n\
 All elements are numbers, except service_pack which is a string. Platform\n\
 may be 0 for win32s, 1 for Windows 9x/ME, 2 for Windows NT/2000/XP/Vista/7,\n\
 3 for Windows CE. Product_type may be 1 for a workstation, 2 for a domain\n\
diff --git a/Tools/demo/ss1.py b/Tools/demo/ss1.py
index 2d1e490..4cea667 100755
--- a/Tools/demo/ss1.py
+++ b/Tools/demo/ss1.py
@@ -586,7 +586,7 @@
         cell = Tk.Label(self.cellgrid, relief='raised')
         cell.grid_configure(column=0, row=0, sticky='NSWE')
         cell.bind("<ButtonPress-1>", self.selectall)
-        # Create the top row of labels, and confiure the grid columns
+        # Create the top row of labels, and configure the grid columns
         for x in range(1, columns+1):
             self.cellgrid.grid_columnconfigure(x, minsize=64)
             cell = Tk.Label(self.cellgrid, text=colnum2name(x), relief='raised')
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 31c9b82..53e652d 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -178,7 +178,7 @@
 
 have_mingw = build_mingw_lib(lib_file, def_file, dll_file, mingw_lib)
 
-# Determine the target architechture
+# Determine the target architecture
 dll_path = os.path.join(srcdir, PCBUILD, dll_file)
 msilib.set_arch_from_file(dll_path)
 if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"):
diff --git a/Tools/pybench/pybench.py b/Tools/pybench/pybench.py
index 2999271..811ef96 100755
--- a/Tools/pybench/pybench.py
+++ b/Tools/pybench/pybench.py
@@ -682,7 +682,7 @@
                 other_total_avg_time = other_total_avg_time + other_avg_time
                 if (benchmarks_compatible and
                     test.compatible(other)):
-                    # Both benchmark and tests are comparible
+                    # Both benchmark and tests are comparable
                     min_diff = ((min_time * self.warp) /
                                 (other_min_time * other.warp) - 1.0)
                     avg_diff = ((avg_time * self.warp) /
@@ -696,7 +696,7 @@
                     else:
                         avg_diff = '%+5.1f%%' % (avg_diff * PERCENT)
                 else:
-                    # Benchmark or tests are not comparible
+                    # Benchmark or tests are not comparable
                     min_diff, avg_diff = 'n/a', 'n/a'
                     tests_compatible = 0
             print('%30s: %5.0fms %5.0fms %7s %5.0fms %5.0fms %7s' % \
diff --git a/setup.py b/setup.py
index 79d9f62..810559c 100644
--- a/setup.py
+++ b/setup.py
@@ -901,7 +901,7 @@
 
                     db_dirs_to_check = tmp
 
-                # Look for a version specific db-X.Y before an ambiguoius dbX
+                # Look for a version specific db-X.Y before an ambiguous dbX
                 # XXX should we -ever- look for a dbX name?  Do any
                 # systems really not name their library by version and
                 # symlink to more general names?