Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
comments, docstrings or error messages. I fixed two minor things in
test_winreg.py ("didn't" -> "Didn't" and "Didnt" -> "Didn't").

There is a minor style issue involved: Guido seems to have preferred English
grammar (behaviour, honour) in a couple places. This patch changes that to
American, which is the more prominent style in the source. I prefer English
myself, so if English is preferred, I'd be happy to supply a patch myself ;)
diff --git a/Demo/sgi/gl/kites.py b/Demo/sgi/gl/kites.py
index be56513..cde69cb 100755
--- a/Demo/sgi/gl/kites.py
+++ b/Demo/sgi/gl/kites.py
@@ -43,7 +43,7 @@
 	popmatrix()
 
 #
-# makeobj : the contructor of the object
+# makeobj : the constructor of the object
 #
 def mkobj () :
 	v0 = (-5.0 ,0.0, 0.0)
diff --git a/Demo/sgi/video/OldVcopy.py b/Demo/sgi/video/OldVcopy.py
index 697a51a..0eb1c7f 100755
--- a/Demo/sgi/video/OldVcopy.py
+++ b/Demo/sgi/video/OldVcopy.py
@@ -15,10 +15,10 @@
 	print 'Frame', iframe, ': t =', time
 
 def usage():
-	sys.stderr.write('usage: Vcopy [-t type] [-m treshold] [-a] infile outfile\n')
+	sys.stderr.write('usage: Vcopy [-t type] [-m threshold] [-a] infile outfile\n')
 	sys.stderr.write('-t Convert to other type\n')
 	sys.stderr.write('-a Automatic\n')
-	sys.stderr.write('-m Convert grey to mono with treshold\n')
+	sys.stderr.write('-m Convert grey to mono with threshold\n')
 	sys.stderr.write('-d Convert grey to mono with dithering\n')
 	sys.exit(2)
 
diff --git a/Demo/sgi/video/Vrec.py b/Demo/sgi/video/Vrec.py
index b647bd3..11039bb 100755
--- a/Demo/sgi/video/Vrec.py
+++ b/Demo/sgi/video/Vrec.py
@@ -26,7 +26,7 @@
 	print '-g bits       : greyscale (2, 4 or 8 bits)'
 	print '-G            : 2-bit greyscale dithered'
 	print '-m            : monochrome dithered'
-	print '-M value      : monochrome tresholded with value'
+	print '-M value      : monochrome thresholded with value'
 	print '-f            : Capture fields (in stead of frames)'
 	print '-P frames     : preallocate space for "frames" frames'
 	print 'moviefile     : here goes the movie data (default film.video)'
diff --git a/Demo/sgi/video/Vrecb.py b/Demo/sgi/video/Vrecb.py
index d65b35f..5cdde9e 100755
--- a/Demo/sgi/video/Vrecb.py
+++ b/Demo/sgi/video/Vrecb.py
@@ -45,7 +45,7 @@
 	print '-g bits       : greyscale (2, 4 or 8 bits)'
 	print '-G            : 2-bit greyscale dithered'
 	print '-m            : monochrome dithered'
-	print '-M value      : monochrome tresholded with value'
+	print '-M value      : monochrome thresholded with value'
 	print '-f            : Capture fields (instead of frames)'
 	print '-n number     : Capture this many frames (default 60)'
 	print '-N memsize    : Capture frames fitting in this many kbytes'
diff --git a/Include/abstract.h b/Include/abstract.h
index 890ffcd..b765c4b 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -695,7 +695,7 @@
      DL_IMPORT(PyObject *) PySequence_Concat(PyObject *o1, PyObject *o2);
 
        /*
-	 Return the concatination of o1 and o2 on success, and NULL on
+	 Return the concatenation of o1 and o2 on success, and NULL on
 	 failure.   This is the equivalent of the Python
 	 expression: o1+o2.
 
diff --git a/Include/cStringIO.h b/Include/cStringIO.h
index cc62c90..fac5f05 100644
--- a/Include/cStringIO.h
+++ b/Include/cStringIO.h
@@ -71,7 +71,7 @@
 
 */
 
-/* Basic fuctions to manipulate cStringIO objects from C */
+/* Basic functions to manipulate cStringIO objects from C */
 
 static struct PycStringIO_CAPI {
   
diff --git a/Include/cobject.h b/Include/cobject.h
index 15850d9..e7b75f5 100644
--- a/Include/cobject.h
+++ b/Include/cobject.h
@@ -28,7 +28,7 @@
 #define PyCObject_Check(op) ((op)->ob_type == &PyCObject_Type)
 
 /* Create a PyCObject from a pointer to a C object and an optional
-   destrutor function.  If the second argument is non-null, then it
+   destructor function.  If the second argument is non-null, then it
    will be called with the first argument if and when the PyCObject is
    destroyed.
 
@@ -38,7 +38,7 @@
 
 
 /* Create a PyCObject from a pointer to a C object, a description object,
-   and an optional destrutor function.  If the third argument is non-null,
+   and an optional destructor function.  If the third argument is non-null,
    then it will be called with the first and second arguments if and when 
    the PyCObject is destroyed.
 */
diff --git a/Include/longintrepr.h b/Include/longintrepr.h
index fed01ed..1e78d05 100644
--- a/Include/longintrepr.h
+++ b/Include/longintrepr.h
@@ -44,7 +44,7 @@
    In a normalized number, ob_digit[abs(ob_size)-1] (the most significant
    digit) is never zero.  Also, in all cases, for all valid i,
    	0 <= ob_digit[i] <= MASK.
-   The allocation fuction takes care of allocating extra memory
+   The allocation function takes care of allocating extra memory
    so that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available. */
 
 struct _longobject {
diff --git a/Include/modsupport.h b/Include/modsupport.h
index c50d769..c55b46b 100644
--- a/Include/modsupport.h
+++ b/Include/modsupport.h
@@ -44,7 +44,7 @@
 #define PYTHON_API_STRING "1009"
 /* The API version is maintained (independently from the Python version)
    so we can detect mismatches between the interpreter and dynamically
-   loaded modules.  These are diagnosticised by an error message but
+   loaded modules.  These are diagnosed by an error message but
    the module is still loaded (because the mismatch can only be tested
    after loading the module).  The error message is intended to
    explain the core dump a few seconds later.
diff --git a/Include/object.h b/Include/object.h
index 8c61e56..72a5282 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -51,7 +51,7 @@
 contains other data that can only be accessed after casting the pointer
 to a pointer to a longer structure type.  This longer type must start
 with the reference count and type fields; the macro PyObject_HEAD should be
-used for this (to accomodate for future changes).  The implementation
+used for this (to accommodate for future changes).  The implementation
 of a particular object type can cast the object pointer to the proper
 type and back.
 
@@ -326,7 +326,7 @@
 reference counts.  Py_DECREF calls the object's deallocator function; for
 objects that don't contain references to other objects or heap memory
 this can be the standard function free().  Both macros can be used
-whereever a void expression is allowed.  The argument shouldn't be a
+wherever a void expression is allowed.  The argument shouldn't be a
 NIL pointer.  The macro _Py_NewReference(op) is used only to initialize
 reference counts to 1; it is defined here for convenience.
 
@@ -518,7 +518,7 @@
   redefinition for better locality and less overhead.
 
   Objects that want to be recursion safe need to use
-  the macroes 
+  the macro's 
 		Py_TRASHCAN_SAFE_BEGIN(name)
   and
 		Py_TRASHCAN_SAFE_END(name)
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 38f787b..41fffc0 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -493,7 +493,7 @@
 
    Note that Py_UNICODE data is being interpreted as UTF-16 reduced to
    UCS-2. This trick makes it possible to add full UTF-16 capabilities
-   at a later point without comprimising the APIs.
+   at a later point without compromising the APIs.
 
 */
 
@@ -815,7 +815,7 @@
     PyObject *right		/* Right string */
     );
 
-/* Apply a argument tuple or dictionar to a format string and return
+/* Apply a argument tuple or dictionary to a format string and return
    the resulting Unicode string. */
 
 extern DL_IMPORT(PyObject *) PyUnicode_Format(
diff --git a/Lib/UserList.py b/Lib/UserList.py
index 7bd0298..d4a8d2f 100644
--- a/Lib/UserList.py
+++ b/Lib/UserList.py
@@ -4,7 +4,7 @@
     def __init__(self, initlist=None):
         self.data = []
         if initlist is not None:
-            # XXX should this accept an arbitary sequence?
+            # XXX should this accept an arbitrary sequence?
             if type(initlist) == type(self.data):
                 self.data[:] = initlist
             elif isinstance(initlist, UserList):
diff --git a/Lib/aifc.py b/Lib/aifc.py
index 0af6622..e00b23f 100644
--- a/Lib/aifc.py
+++ b/Lib/aifc.py
@@ -82,7 +82,7 @@
   close()     -- close the instance (make it unusable)
 The position returned by tell(), the position given to setpos() and
 the position of marks are all compatible and have nothing to do with
-the actual postion in the file.
+the actual position in the file.
 The close() method is called automatically when the class instance
 is destroyed.
 
diff --git a/Lib/asynchat.py b/Lib/asynchat.py
index 8b2f59f..4e02fa5 100644
--- a/Lib/asynchat.py
+++ b/Lib/asynchat.py
@@ -287,7 +287,7 @@
 ##	return result
 
 # yes, this is about twice as fast, but still seems
-# to be neglible CPU.  The previous could do about 290
+# to be negligible CPU.  The previous could do about 290
 # searches/sec. the new one about 555/sec.
 
 import regex
diff --git a/Lib/binhex.py b/Lib/binhex.py
index 0a28859..275701d 100644
--- a/Lib/binhex.py
+++ b/Lib/binhex.py
@@ -75,7 +75,7 @@
 
 else:
     #
-    # Glue code for non-macintosh useage
+    # Glue code for non-macintosh usage
     #
     
     class FInfo:
diff --git a/Lib/cgi.py b/Lib/cgi.py
index 4eaa983..7c95706 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -83,7 +83,7 @@
 If the submitted form data contains more than one field with the same
 name, the object retrieved by form[key] is not a (Mini)FieldStorage
 instance but a list of such instances.  If you are expecting this
-possibility (i.e., when your HTML form comtains multiple fields with
+possibility (i.e., when your HTML form contains multiple fields with
 the same name), use the type() function to determine whether you have
 a single instance or a list of instances.  For example, here's code
 that concatenates any number of username fields, separated by commas:
@@ -106,7 +106,7 @@
 If a field represents an uploaded file, the value attribute reads the 
 entire file in memory as a string.  This may not be what you want.  You can 
 test for an uploaded file by testing either the filename attribute or the 
-file attribute.  You can then read the data at leasure from the file 
+file attribute.  You can then read the data at leisure from the file 
 attribute:
 
         fileitem = form["userfile"]
@@ -500,7 +500,7 @@
 
         keep_blank_values: flag indicating whether blank values in
             URL encoded forms should be treated as blank strings.  
-            A true value inicates that blanks should be retained as 
+            A true value indicates that blanks should be retained as 
             blank strings.  The default false value indicates that
             blank values are to be ignored and treated as if they were
             not included.
@@ -551,7 +551,7 @@
 
         keep_blank_values: flag indicating whether blank values in
             URL encoded queries should be treated as blank strings.  
-            A true value inicates that blanks should be retained as 
+            A true value indicates that blanks should be retained as 
             blank strings.  The default false value indicates that
             blank values are to be ignored and treated as if they were
             not included.
@@ -578,7 +578,7 @@
 
         keep_blank_values: flag indicating whether blank values in
             URL encoded queries should be treated as blank strings.  
-            A true value inicates that blanks should be retained as 
+            A true value indicates that blanks should be retained as 
             blank strings.  The default false value indicates that
             blank values are to be ignored and treated as if they were
             not included.
@@ -806,7 +806,7 @@
 
         keep_blank_values: flag indicating whether blank values in
             URL encoded forms should be treated as blank strings.  
-            A true value inicates that blanks should be retained as 
+            A true value indicates that blanks should be retained as 
             blank strings.  The default false value indicates that
             blank values are to be ignored and treated as if they were
             not included.
diff --git a/Lib/codecs.py b/Lib/codecs.py
index fbb9824..2c1d835 100644
--- a/Lib/codecs.py
+++ b/Lib/codecs.py
@@ -273,7 +273,7 @@
         """ Resets the codec buffers used for keeping state.
 
             Note that no stream repositioning should take place.
-            This method is primarely intended to be able to recover
+            This method is primarily intended to be able to recover
             from decoding errors.
 
         """
@@ -295,7 +295,7 @@
         work in both read and write modes.
 
         The design is such that one can use the factory functions
-        returned by the codec.lookup() function to contruct the
+        returned by the codec.lookup() function to construct the
         instance.
 
     """
diff --git a/Lib/dos-8x3/multifil.py b/Lib/dos-8x3/multifil.py
index 977b92f..cc8f43c 100755
--- a/Lib/dos-8x3/multifil.py
+++ b/Lib/dos-8x3/multifil.py
@@ -21,7 +21,7 @@
 The latter sequence may be used recursively at (A).
 It is also allowed to use multiple push()...pop() sequences.
 
-If seekable is given as 0, the class code will not do the bookeeping
+If seekable is given as 0, the class code will not do the bookkeeping
 it normally attempts in order to make seeks relative to the beginning of the
 current file part.  This may be useful when using MultiFile with a non-
 seekable stream object.
diff --git a/Lib/dos-8x3/rlcomple.py b/Lib/dos-8x3/rlcomple.py
index 7a248fe..8cd21ed 100644
--- a/Lib/dos-8x3/rlcomple.py
+++ b/Lib/dos-8x3/rlcomple.py
@@ -84,7 +84,7 @@
         """Compute matches when text contains a dot.
 
         Assuming the text is of the form NAME.NAME....[NAME], and is
-        evaluabable in the globals of __main__, it will be evaluated
+        evaluatable in the globals of __main__, it will be evaluated
         and its attributes (as revealed by dir()) are used as possible
         completions.  (For class instances, class members are are also
         considered.)
diff --git a/Lib/dos-8x3/sre_comp.py b/Lib/dos-8x3/sre_comp.py
index 590e45f..fa0cf37 100644
--- a/Lib/dos-8x3/sre_comp.py
+++ b/Lib/dos-8x3/sre_comp.py
@@ -20,7 +20,7 @@
     if len(array.array(WORDSIZE, [0]).tostring()) == _sre.getcodesize():
         break
 else:
-    raise RuntimeError, "cannot find a useable array type"
+    raise RuntimeError, "cannot find a usable array type"
 
 def _compile(code, pattern, flags):
     # internal: compile a (sub)pattern
diff --git a/Lib/dos-8x3/stringol.py b/Lib/dos-8x3/stringol.py
index 8fa7dd4..c3e6f6f 100644
--- a/Lib/dos-8x3/stringol.py
+++ b/Lib/dos-8x3/stringol.py
@@ -118,7 +118,7 @@
     """join(list [,sep]) -> string
 
     Return a string composed of the words in list, with
-    intervening occurences of sep.  The default separator is a
+    intervening occurrences of sep.  The default separator is a
     single space.
 
     (joinfields and join are synonymous)
diff --git a/Lib/dos-8x3/test_ima.py b/Lib/dos-8x3/test_ima.py
index 63ab138..6b144c6 100644
--- a/Lib/dos-8x3/test_ima.py
+++ b/Lib/dos-8x3/test_ima.py
@@ -62,7 +62,7 @@
     image = imageop.grey2rgb(greyimage, width, height)
     
     # Convert a 8-bit deep greyscale image to a 1-bit deep image by
-    # tresholding all the pixels. The resulting image is tightly packed
+    # thresholding all the pixels. The resulting image is tightly packed
     # and is probably only useful as an argument to mono2grey. 
     if verbose:
         print 'grey2mono'
diff --git a/Lib/dos-8x3/threadst.py b/Lib/dos-8x3/threadst.py
index c2b08f2..d9c2788 100644
--- a/Lib/dos-8x3/threadst.py
+++ b/Lib/dos-8x3/threadst.py
@@ -1,7 +1,7 @@
 import thread
-# Start empty thread to initialise thread mechanics (and global lock!)
+# Start empty thread to initialize thread mechanics (and global lock!)
 # This thread will finish immediately thus won't make much influence on
-# test results by itself, only by that fact that it initialises global lock
+# test results by itself, only by that fact that it initializes global lock
 thread.start_new_thread(lambda : 1, ())
 
 import test.pystone
diff --git a/Lib/dos-8x3/tracebac.py b/Lib/dos-8x3/tracebac.py
index 4675077..d219340 100755
--- a/Lib/dos-8x3/tracebac.py
+++ b/Lib/dos-8x3/tracebac.py
@@ -117,7 +117,7 @@
 	have the same meaning as the corresponding arguments to
 	print_exception().  The return value is a list of strings, each
 	ending in a newline and some containing internal newlines.  When 
-	these lines are contatenated and printed, exactly the same text is
+	these lines are concatenated and printed, exactly the same text is
 	printed as does print_exception()."""
 	if tb:
 		list = ['Traceback (most recent call last):\n']
diff --git a/Lib/dos-8x3/userlist.py b/Lib/dos-8x3/userlist.py
index 7bd0298..d4a8d2f 100755
--- a/Lib/dos-8x3/userlist.py
+++ b/Lib/dos-8x3/userlist.py
@@ -4,7 +4,7 @@
     def __init__(self, initlist=None):
         self.data = []
         if initlist is not None:
-            # XXX should this accept an arbitary sequence?
+            # XXX should this accept an arbitrary sequence?
             if type(initlist) == type(self.data):
                 self.data[:] = initlist
             elif isinstance(initlist, UserList):
diff --git a/Lib/encodings/cp856.py b/Lib/encodings/cp856.py
index a0aa4c1..f384acb 100644
--- a/Lib/encodings/cp856.py
+++ b/Lib/encodings/cp856.py
@@ -120,10 +120,10 @@
 	0x00d0: None,	# UNDEFINED
 	0x00d1: None,	# UNDEFINED
 	0x00d2: None,	# UNDEFINED
-	0x00d3: None,	# UNDEFINEDS
+	0x00d3: None,	# UNDEFINED
 	0x00d4: None,	# UNDEFINED
 	0x00d5: None,	# UNDEFINED
-	0x00d6: None,	# UNDEFINEDE
+	0x00d6: None,	# UNDEFINED
 	0x00d7: None,	# UNDEFINED
 	0x00d8: None,	# UNDEFINED
 	0x00d9: 0x2518,	# BOX DRAWINGS LIGHT UP AND LEFT
diff --git a/Lib/lib-old/Para.py b/Lib/lib-old/Para.py
index 003ea1e..bf5f92c 100644
--- a/Lib/lib-old/Para.py
+++ b/Lib/lib-old/Para.py
@@ -56,7 +56,7 @@
 	#
 	# Tab to a given position (relative to the current left indent):
 	# remove all stretch, add fixed space up to the new indent.
-	# If the current position is already beying the tab stop,
+	# If the current position is already at the tab stop,
 	# don't add any new space (but still remove the stretch)
 	def tabto(self, tab):
 		total = 0
diff --git a/Lib/lib-old/ni.py b/Lib/lib-old/ni.py
index 13bcfac..4a06f59 100644
--- a/Lib/lib-old/ni.py
+++ b/Lib/lib-old/ni.py
@@ -64,7 +64,7 @@
 (2) A package's *import domain*, contained in the per-package variable
 __domain__, defines a list of *packages* that are searched (using
 their respective module search paths) to satisfy imports.  It is
-initialized to the list cosisting of the package itself, its parent
+initialized to the list consisting of the package itself, its parent
 package, its parent's parent, and so on, ending with the root package
 (the nameless package containing all top-level packages and modules,
 whose module search path is None, implying sys.path).
diff --git a/Lib/lib-tk/FileDialog.py b/Lib/lib-tk/FileDialog.py
index 74e9741..bd62c6d 100644
--- a/Lib/lib-tk/FileDialog.py
+++ b/Lib/lib-tk/FileDialog.py
@@ -36,7 +36,7 @@
     and pattern arguments, overriding the values passed in (it does
     not keep track of the default argument!).  If no key is specified,
     the dialog keeps no memory of previous state.  Note that memory is
-    kept even when the dialog is cancelled.  (All this emulates the
+    kept even when the dialog is canceled.  (All this emulates the
     behavior of the Macintosh file selection dialogs.)
 
     """
diff --git a/Lib/lib-tk/Tkdnd.py b/Lib/lib-tk/Tkdnd.py
index 0dda3b7..a4e1d1f 100644
--- a/Lib/lib-tk/Tkdnd.py
+++ b/Lib/lib-tk/Tkdnd.py
@@ -277,7 +277,7 @@
         return self
 
     def dnd_enter(self, source, event):
-        self.canvas.focus_set() # Show higlight border
+        self.canvas.focus_set() # Show highlight border
         x, y = source.where(self.canvas, event)
         x1, y1, x2, y2 = source.canvas.bbox(source.id)
         dx, dy = x2-x1, y2-y1
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index a70e064..63ccd1c 100644
--- a/Lib/lib-tk/Tkinter.py
+++ b/Lib/lib-tk/Tkinter.py
@@ -117,7 +117,7 @@
 					        Enter, KeyPress, KeyRelease,
 					        Leave, Motion)
 	state - state as a string (Visibility)
-	time - when the event occured
+	time - when the event occurred
 	x - x-position of the mouse
 	y - y-position of the mouse
 	x_root - x-position of the mouse on the screen
@@ -129,7 +129,7 @@
 	keysym - keysym of the the event as a string (KeyPress, KeyRelease)
 	keysym_num - keysym of the event as a number (KeyPress, KeyRelease)
 	type - type of the event as a number
-	widget - widget in which the event occured
+	widget - widget in which the event occurred
 	delta - delta of wheel movement (MouseWheel)
 	"""
 	pass
@@ -409,7 +409,7 @@
 		The focus order first goes to the next child, then to
 		the children of the child recursively and then to the
 		next sibling which is higher in the stacking order.  A
-		widget is ommited if it has the takefocus resource set
+		widget is omitted if it has the takefocus resource set
 		to 0."""
 		name = self.tk.call('tk_focusNext', self._w)
 		if not name: return None
@@ -529,7 +529,7 @@
 	def option_readfile(self, fileName, priority = None):
 		"""Read file FILENAME into the option database.
 
-		An optional second paramter gives the numeric
+		An optional second parameter gives the numeric
 		priority."""
 		self.tk.call('option', 'readfile', fileName, priority)
 	def selection_clear(self, **kw):
@@ -639,7 +639,7 @@
 		"""Return geometry string for this widget in the form "widthxheight+X+Y"."""
 		return self.tk.call('winfo', 'geometry', self._w)
 	def winfo_height(self):
-		"""Return heigth of this widget."""
+		"""Return height of this widget."""
 		return getint(
 			self.tk.call('winfo', 'height', self._w))
 	def winfo_id(self):
@@ -754,7 +754,7 @@
 		return self._nametowidget(self.tk.call(
 			'winfo', 'toplevel', self._w))
 	def winfo_viewable(self):
-		"""Return true if the widget and all its higher anchestors are mapped."""
+		"""Return true if the widget and all its higher ancestors are mapped."""
 		return getint(
 			self.tk.call('winfo', 'viewable', self._w))
 	def winfo_visual(self):
@@ -1135,7 +1135,7 @@
 		cell. If COL2 and ROW2 are given the bounding box
 		starts at that cell.
 
-		The returned integers specify the offset of the uppler left
+		The returned integers specify the offset of the upper left
 		corner in the master widget and the width and height.
 		"""
 		args = ('grid', 'bbox', self._w)
@@ -1268,7 +1268,7 @@
 
 class CallWrapper:
 	"""Internal class. Stores function to call when some user
-	defined Tcl function is called e.g. after an event occured."""
+	defined Tcl function is called e.g. after an event occurred."""
 	def __init__(self, func, subst, widget):
 		"""Store FUNC, SUBST and WIDGET as members."""
 		self.func = func
@@ -1316,7 +1316,7 @@
 	def wm_command(self, value=None):
 		"""Store VALUE in WM_COMMAND property. It is the command
 		which shall be used to invoke the application. Return current
-		commmand if VALUE is None."""
+		command if VALUE is None."""
 		return self.tk.call('wm', 'command', self._w, value)
 	command = wm_command
 	def wm_deiconify(self):
@@ -1335,7 +1335,7 @@
 		return self.tk.call('wm', 'frame', self._w)
 	frame = wm_frame
 	def wm_geometry(self, newGeometry=None):
-		"""Set geometry to NEWGEOMETRY of the form =widthxheigth+x+y. Return
+		"""Set geometry to NEWGEOMETRY of the form =widthxheight+x+y. Return
 		current value if None is given."""
 		return self.tk.call('wm', 'geometry', self._w, newGeometry)
 	geometry = wm_geometry
@@ -1623,7 +1623,7 @@
 		                  relative to width of master (1.0 is the same width
 				  as the master)
 	        relheight=amount - height of this widget between 0.0 and 1.0
-		                   relative to heigth of master (1.0 is the same
+		                   relative to height of master (1.0 is the same
 				   height as the master)
 	        bordermode="inside" or "outside" - whether to take border width of master widget
 	                                           into account
@@ -1913,12 +1913,12 @@
 				  sequence, func, add)
 	def canvasx(self, screenx, gridspacing=None):
 		"""Return the canvas x coordinate of pixel position SCREENX rounded
-		to nearest muliple of GRIDSPACING units."""
+		to nearest multiple of GRIDSPACING units."""
 		return getdouble(self.tk.call(
 			self._w, 'canvasx', screenx, gridspacing))
 	def canvasy(self, screeny, gridspacing=None):
 		"""Return the canvas y coordinate of pixel position SCREENY rounded
-		to nearest muliple of GRIDSPACING units."""
+		to nearest multiple of GRIDSPACING units."""
 		return getdouble(self.tk.call(
 			self._w, 'canvasy', screeny, gridspacing))
 	def coords(self, *args):
@@ -2609,7 +2609,7 @@
 		width, wrap, xscrollcommand, yscrollcommand."""
 		Widget.__init__(self, master, 'text', cnf, kw)
 	def bbox(self, *args):
-		"""Return a tuple of (x,y,width,heigth) which gives the bounding
+		"""Return a tuple of (x,y,width,height) which gives the bounding
 		box of the visible part of the character at the index in ARGS."""
 		return self._getints(
 			self.tk.call((self._w, 'bbox') + args)) or None
@@ -2674,7 +2674,7 @@
 		"""Return the index in the form line.char for INDEX."""
 		return self.tk.call(self._w, 'index', index)
 	def insert(self, index, chars, *args):
-		"""Insert CHARS before the charaters at INDEX. An additional
+		"""Insert CHARS before the characters at INDEX. An additional
 		tag can be given in ARGS. Additional CHARS and tags can follow in ARGS."""
 		self.tk.call((self._w, 'insert', index, chars) + args)
 	def mark_gravity(self, markName, direction=None):
@@ -2728,7 +2728,7 @@
 		self.tk.call(self._w, 'see', index)
 	def tag_add(self, tagName, index1, *args):
 		"""Add tag TAGNAME to all characters between INDEX1 and index2 in ARGS.
-		Addtional pairs of indices may follow in ARGS."""
+		Additional pairs of indices may follow in ARGS."""
 		self.tk.call(
 			(self._w, 'tag', 'add', tagName, index1) + args)
 	def tag_unbind(self, tagName, sequence, funcid=None):
diff --git a/Lib/lib-tk/tkColorChooser.py b/Lib/lib-tk/tkColorChooser.py
index 5756275..77e856b 100644
--- a/Lib/lib-tk/tkColorChooser.py
+++ b/Lib/lib-tk/tkColorChooser.py
@@ -48,7 +48,7 @@
         # to simplify application code, the color chooser returns
         # an RGB tuple together with the Tk color string
         if not result:
-            return None, None # cancelled
+            return None, None # canceled
         r, g, b = widget.winfo_rgb(result)
         return (r/256, g/256, b/256), result
 
diff --git a/Lib/locale.py b/Lib/locale.py
index 7dde040..401c712 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -268,7 +268,7 @@
         setlocale(LC_ALL, "") runs using the portable 'C' locale.
         Calling setlocale(LC_ALL, "") lets it use the default locale as
         defined by the LANG variable. Since we don't want to interfere
-        with the current locale setting we thus emulate the behaviour
+        with the current locale setting we thus emulate the behavior
         in the way described above.
 
         To maintain compatibility with other platforms, not only the
diff --git a/Lib/mhlib.py b/Lib/mhlib.py
index 9af04b2..df538f2 100644
--- a/Lib/mhlib.py
+++ b/Lib/mhlib.py
@@ -627,7 +627,7 @@
                     pass
 
     def removefromallsequences(self, list):
-        """Remove one or more messages from all sequeuces (including last)
+        """Remove one or more messages from all sequences (including last)
         -- but not from 'cur'!!!"""
         if hasattr(self, 'last') and self.last in list:
             del self.last
diff --git a/Lib/multifile.py b/Lib/multifile.py
index 977b92f..cc8f43c 100644
--- a/Lib/multifile.py
+++ b/Lib/multifile.py
@@ -21,7 +21,7 @@
 The latter sequence may be used recursively at (A).
 It is also allowed to use multiple push()...pop() sequences.
 
-If seekable is given as 0, the class code will not do the bookeeping
+If seekable is given as 0, the class code will not do the bookkeeping
 it normally attempts in order to make seeks relative to the beginning of the
 current file part.  This may be useful when using MultiFile with a non-
 seekable stream object.
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 81449b0..7a90543 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -219,7 +219,7 @@
 		- date: string 'yymmdd' indicating the date
 		- time: string 'hhmmss' indicating the time
 		Return:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of newsgroup names"""
 
 		return self.longcmd('NEWGROUPS ' + date + ' ' + time)
@@ -230,7 +230,7 @@
 		- date: string 'yymmdd' indicating the date
 		- time: string 'hhmmss' indicating the time
 		Return:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of article ids"""
 
 		cmd = 'NEWNEWS ' + group + ' ' + date + ' ' + time
@@ -238,7 +238,7 @@
 
 	def list(self):
 		"""Process a LIST command.  Return:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of (group, last, first, flag) (strings)"""
 
 		resp, list = self.longcmd('LIST')
@@ -251,7 +251,7 @@
 		"""Process a GROUP command.  Argument:
 		- group: the group name
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- count: number of articles (string)
 		- first: first article number (string)
 		- last: last article number (string)
@@ -275,7 +275,7 @@
 
 	def help(self):
 		"""Process a HELP command.  Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of strings"""
 
 		return self.longcmd('HELP')
@@ -303,7 +303,7 @@
 		"""Process a STAT command.  Argument:
 		- id: article number or message id
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- nr:   the article number
 		- id:   the article id"""
 
@@ -327,7 +327,7 @@
 		"""Process a HEAD command.  Argument:
 		- id: article number or message id
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- nr: article number
 		- id: message id
 		- list: the lines of the article's header"""
@@ -338,7 +338,7 @@
 		"""Process a BODY command.  Argument:
 		- id: article number or message id
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- nr: article number
 		- id: message id
 		- list: the lines of the article's body"""
@@ -349,7 +349,7 @@
 		"""Process an ARTICLE command.  Argument:
 		- id: article number or message id
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- nr: article number
 		- id: message id
 		- list: the lines of the article"""
@@ -358,7 +358,7 @@
 
 	def slave(self):
 		"""Process a SLAVE command.  Returns:
-		- resp: server response if succesful"""
+		- resp: server response if successful"""
 
 		return self.shortcmd('SLAVE')
 
@@ -367,7 +367,7 @@
 		- hdr: the header type (e.g. 'subject')
 		- str: an article nr, a message id, or a range nr1-nr2
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of (nr, value) strings"""
 
 		pat = re.compile('^([0-9]+) ?(.*)\n?')
@@ -384,7 +384,7 @@
 		- start: start of range
 		- end: end of range
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of (art-nr, subject, poster, date,
 		                 id, references, size, lines)"""
 
@@ -409,7 +409,7 @@
 		"""Process an XGTITLE command (optional server extension) Arguments:
 		- group: group name wildcard (i.e. news.*)
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		- list: list of (name,title) strings"""
 
 		line_pat = re.compile("^([^ \t]+)[ \t]+(.*)$")
@@ -425,7 +425,7 @@
 		"""Process an XPATH command (optional server extension) Arguments:
 		- id: Message id of article
 		Returns:
-		resp: server response if succesful
+		resp: server response if successful
 		path: directory path to article"""
 
 		resp = self.shortcmd("XPATH " + id)
@@ -442,7 +442,7 @@
 		"""Process the DATE command. Arguments:
 		None
 		Returns:
-		resp: server response if succesful
+		resp: server response if successful
 		date: Date suitable for newnews/newgroups commands etc.
 		time: Time suitable for newnews/newgroups commands etc."""
 
@@ -463,7 +463,7 @@
 		"""Process a POST command.  Arguments:
 		- f: file containing the article
 		Returns:
-		- resp: server response if succesful"""
+		- resp: server response if successful"""
 
 		resp = self.shortcmd('POST')
 		# Raises error_??? if posting is not allowed
@@ -486,7 +486,7 @@
 		- id: message-id of the article
 		- f:  file containing the article
 		Returns:
-		- resp: server response if succesful
+		- resp: server response if successful
 		Note that if the server refuses the article an exception is raised."""
 
 		resp = self.shortcmd('IHAVE ' + id)
@@ -507,7 +507,7 @@
 
 	def quit(self):
 		"""Process a QUIT command and close the socket.  Returns:
-		- resp: server response if succesful"""
+		- resp: server response if successful"""
 
 		resp = self.shortcmd('QUIT')
 		self.file.close()
diff --git a/Lib/os.py b/Lib/os.py
index c7a3cc5..8e1e4f0 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -218,7 +218,7 @@
 
     Execute the executable file (which is searched for along $PATH)
     with argument list args, replacing the current process.
-    args may be a list or tupe of strings. """
+    args may be a list or tuple of strings. """
     _execvpe(file, args)
 
 def execvpe(file, args, env):
@@ -227,7 +227,7 @@
     Execute the executable file (which is searched for along $PATH)
     with argument list args and environment env , replacing the
     current process.
-    args may be a list or tupe of strings. """    
+    args may be a list or tuple of strings. """    
     _execvpe(file, args, env)
 
 _notfound = None
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 67387a9..db4a2cd 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -191,7 +191,7 @@
 					if bp:
 						bp.bpprint()
 			return
-		# parse arguments; comma has lowest precendence
+		# parse arguments; comma has lowest precedence
 		# and cannot occur in filename
 		filename = None
 		lineno = None
diff --git a/Lib/poplib.py b/Lib/poplib.py
index 97a9b0d..5a3813c 100644
--- a/Lib/poplib.py
+++ b/Lib/poplib.py
@@ -59,7 +59,7 @@
 		POP3(hostname, port=110)
 
 	NB:	the POP protocol locks the mailbox from user
-		authorisation until QUIT, so be sure to get in, suck
+		authorization until QUIT, so be sure to get in, suck
 		the messages, and quit, each time you access the
 		mailbox.
 
diff --git a/Lib/pprint.py b/Lib/pprint.py
index 346c70b..8e10e9d 100644
--- a/Lib/pprint.py
+++ b/Lib/pprint.py
@@ -4,7 +4,7 @@
 #  This is a simple little module I wrote to make life easier.  I didn't
 #  see anything quite like it in the library, though I may have overlooked
 #  something.  I wrote this when I was trying to read some heavily nested
-#  tuples with fairly non-descriptive content.  This is modelled very much
+#  tuples with fairly non-descriptive content.  This is modeled very much
 #  after Lisp/Scheme - style pretty-printing of lists.  If you find it
 #  useful, thank small children who sleep at night.
 
diff --git a/Lib/pre.py b/Lib/pre.py
index 602980a..3086bd4 100644
--- a/Lib/pre.py
+++ b/Lib/pre.py
@@ -77,7 +77,7 @@
     M  MULTILINE   "^" matches the beginning of lines as well as the string.
                    "$" matches the end of lines as well as the string.
     S  DOTALL      "." matches any character at all, including the newline.
-    X  VERBOSE     Ignore whitespaces and comments for nicer looking RE's.
+    X  VERBOSE     Ignore whitespace and comments for nicer looking RE's.
 
 This module also defines an exception 'error'.
 
diff --git a/Lib/profile.py b/Lib/profile.py
index 18fd65d..e31363a 100755
--- a/Lib/profile.py
+++ b/Lib/profile.py
@@ -98,9 +98,9 @@
 	       subfunctions
 	[ 2] = Cumulative time spent in this frame's function, including time in
 	       all subfunctions to this frame.
-	[-3] = Name of the function that corresonds to this frame.  
+	[-3] = Name of the function that corresponds to this frame.  
 	[-2] = Actual frame that we correspond to (used to sync exception handling)
-	[-1] = Our parent 6-tuple (corresonds to frame.f_back)
+	[-1] = Our parent 6-tuple (corresponds to frame.f_back)
 
 	Timing data for each function is stored as a 5-tuple in the dictionary
 	self.timings[].  The index is always the name stored in self.cur[4].
@@ -205,7 +205,7 @@
 		return
 
 
-	# SLOW generic dispatch rountine for timer returning lists of numbers
+	# SLOW generic dispatch routine for timer returning lists of numbers
 
 	def trace_dispatch_l(self, frame, event, arg):
 		t = self.get_time() - self.t
@@ -368,7 +368,7 @@
 	#******************************************************************
 	# The following calculates the overhead for using a profiler.  The
 	# problem is that it takes a fair amount of time for the profiler
-	# to stop the stopwatch (from the time it recieves an event).
+	# to stop the stopwatch (from the time it receives an event).
 	# Similarly, there is a delay from the time that the profiler
 	# re-starts the stopwatch before the user's code really gets to
 	# continue.  The following code tries to measure the difference on
diff --git a/Lib/pstats.py b/Lib/pstats.py
index 413351d..558962e 100644
--- a/Lib/pstats.py
+++ b/Lib/pstats.py
@@ -49,16 +49,16 @@
 	The big change from the previous Profiler (in terms of raw functionality)
 	is that an "add()" method has been provided to combine Stats from
 	several distinct profile runs.  Both the constructor and the add()
-	method now take arbitrarilly many file names as arguments.
+	method now take arbitrarily many file names as arguments.
 
-	All the print methods now take an argument that indicats how many lines
+	All the print methods now take an argument that indicates how many lines
 	to print.  If the arg is a floating point number between 0 and 1.0, then
-	it is taken as a decimal percentage of the availabel lines to be printed
+	it is taken as a decimal percentage of the available lines to be printed
 	(e.g., .1 means print 10% of all available lines).  If it is an integer,
 	it is taken to mean the number of lines of data that you wish to have
 	printed.
 
-	The sort_stats() method now processes some additionaly options (i.e., in
+	The sort_stats() method now processes some additional options (i.e., in
 	addition to the old -1, 0, 1, or 2).  It takes an arbitrary number of quoted
 	strings to select the sort order.  For example sort_stats('time', 'name')
 	sorts on the major key of "internal function time", and on the minor
@@ -165,7 +165,7 @@
 			
 
 
-	# list the tuple indicies and directions for sorting,
+	# list the tuple indices and directions for sorting,
 	# along with some printable description
 	sort_arg_dict_default = {\
 		  "calls"     : (((1,-1),              ), "call count"),\
@@ -447,7 +447,7 @@
 
 class TupleComp:
 	"""This class provides a generic function for comparing any two tuples.
-	Each instance records a list of tuple-indicies (from most significant
+	Each instance records a list of tuple-indices (from most significant
 	to least significant), and sort direction (ascending or decending) for
 	each tuple-index.  The compare functions can then be used as the function
 	argument to the system sort() function when a list of tuples need to be
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index bb17614..6473149 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -193,7 +193,7 @@
         
         You may override this method if your application wants
         to bend the rules, e.g. to strip trailing whitespace,
-        or to recognise MH template separators ('--------').
+        or to recognize MH template separators ('--------').
         For convenience (e.g. for code reading from sockets) a
         line consisting of \r\n also matches.                
         """
diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py
index 7a248fe..8cd21ed 100644
--- a/Lib/rlcompleter.py
+++ b/Lib/rlcompleter.py
@@ -84,7 +84,7 @@
         """Compute matches when text contains a dot.
 
         Assuming the text is of the form NAME.NAME....[NAME], and is
-        evaluabable in the globals of __main__, it will be evaluated
+        evaluatable in the globals of __main__, it will be evaluated
         and its attributes (as revealed by dir()) are used as possible
         completions.  (For class instances, class members are are also
         considered.)
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index c7865ad..e5f0b03 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -88,7 +88,7 @@
 
 class SMTPRecipientsRefused(SMTPException):
     """All recipient addresses refused.
-    The errors for each recipient are accessable thru the attribute
+    The errors for each recipient are accessible through the attribute
     'recipients', which is a dictionary of exactly the same sort as 
     SMTP.sendmail() returns.  
     """
@@ -323,7 +323,7 @@
         if code<>250:
             return (code,msg)
         self.does_esmtp=1
-        #parse the ehlo responce -ddm
+        #parse the ehlo response -ddm
         resp=string.split(self.ehlo_resp,'\n')
         del resp[0]
         for each in resp:
diff --git a/Lib/sre_constants.py b/Lib/sre_constants.py
index ef32c32..c2cecdf 100644
--- a/Lib/sre_constants.py
+++ b/Lib/sre_constants.py
@@ -172,7 +172,7 @@
 # flags
 SRE_FLAG_TEMPLATE = 1 # template mode (disable backtracking)
 SRE_FLAG_IGNORECASE = 2 # case insensitive
-SRE_FLAG_LOCALE = 4 # honour system locale
+SRE_FLAG_LOCALE = 4 # honor system locale
 SRE_FLAG_MULTILINE = 8 # treat target as multiline string
 SRE_FLAG_DOTALL = 16 # treat target as a single string
 SRE_FLAG_UNICODE = 32 # use unicode locale
diff --git a/Lib/string.py b/Lib/string.py
index 21781e7..6570fef 100644
--- a/Lib/string.py
+++ b/Lib/string.py
@@ -116,7 +116,7 @@
     """join(list [,sep]) -> string
 
     Return a string composed of the words in list, with
-    intervening occurences of sep.  The default separator is a
+    intervening occurrences of sep.  The default separator is a
     single space.
 
     (joinfields and join are synonymous)
diff --git a/Lib/stringold.py b/Lib/stringold.py
index 8fa7dd4..c3e6f6f 100644
--- a/Lib/stringold.py
+++ b/Lib/stringold.py
@@ -118,7 +118,7 @@
     """join(list [,sep]) -> string
 
     Return a string composed of the words in list, with
-    intervening occurences of sep.  The default separator is a
+    intervening occurrences of sep.  The default separator is a
     single space.
 
     (joinfields and join are synonymous)
diff --git a/Lib/sunau.py b/Lib/sunau.py
index 5e8ac32..940cfd4 100644
--- a/Lib/sunau.py
+++ b/Lib/sunau.py
@@ -63,7 +63,7 @@
         tell()		-- return the current position
         close()		-- close the instance (make it unusable)
 The position returned by tell() and the position given to setpos()
-are compatible and have nothing to do with the actual postion in the
+are compatible and have nothing to do with the actual position in the
 file.
 The close() method is called automatically when the class instance
 is destroyed.
@@ -170,7 +170,7 @@
 		if self._hdr_size < 24:
 			raise Error, 'header size too small'
 		if self._hdr_size > 100:
-			raise Error, 'header size rediculously large'
+			raise Error, 'header size ridiculously large'
 		self._data_size = _read_u32(file)
 		if self._data_size != AUDIO_UNKNOWN_SIZE:
 			self._data_size = int(self._data_size)
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index dbaee75..e96ba81 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -42,7 +42,7 @@
          exclude=0, single=0, randomize=0):
     """Execute a test suite.
 
-    This also parses command-line options and modifies its behaviour
+    This also parses command-line options and modifies its behavior
     accordingly. 
 
     tests -- a list of strings containing test names (optional)
diff --git a/Lib/test/test_imageop.py b/Lib/test/test_imageop.py
index 63ab138..6b144c6 100755
--- a/Lib/test/test_imageop.py
+++ b/Lib/test/test_imageop.py
@@ -62,7 +62,7 @@
     image = imageop.grey2rgb(greyimage, width, height)
     
     # Convert a 8-bit deep greyscale image to a 1-bit deep image by
-    # tresholding all the pixels. The resulting image is tightly packed
+    # thresholding all the pixels. The resulting image is tightly packed
     # and is probably only useful as an argument to mono2grey. 
     if verbose:
         print 'grey2mono'
diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py
index d6dd1d7..389d2a7 100644
--- a/Lib/test/test_pty.py
+++ b/Lib/test/test_pty.py
@@ -66,7 +66,7 @@
         pass
     except:
         # We don't want this error to propagate, escape the call to
-        # os._exit(), and cause very peculiar behaviour in the calling
+        # os._exit(), and cause very peculiar behavior in the calling
         # regrtest.py !
         debug("Some other error was raised.")
         os._exit(1)
diff --git a/Lib/test/test_winreg.py b/Lib/test/test_winreg.py
index 0eb798f..18ce7a7 100644
--- a/Lib/test/test_winreg.py
+++ b/Lib/test/test_winreg.py
@@ -58,7 +58,7 @@
 def ReadTestData(root_key):
     # Check we can get default value for this key.
     val = QueryValue(root_key, test_key_name)
-    assert val=="Default value", "Registry didnt give back the correct value"
+    assert val=="Default value", "Registry didn't give back the correct value"
 
     key = OpenKey(root_key, test_key_name)
     # Read the sub-keys
@@ -70,9 +70,9 @@
             data = EnumValue(sub_key, index)
         except EnvironmentError:
             break
-        assert data in test_data, "didnt read back the correct test data."
+        assert data in test_data, "Didn't read back the correct test data"
         index = index + 1
-    assert index==len(test_data), "Didnt read the correct number of items"
+    assert index==len(test_data), "Didn't read the correct number of items"
     # Check I can directly access each item
     for value_name, value_data, value_type in test_data:
         read_val, read_typ = QueryValueEx(sub_key, value_name)
diff --git a/Lib/toaiff.py b/Lib/toaiff.py
index 7fd0153..84a7786 100644
--- a/Lib/toaiff.py
+++ b/Lib/toaiff.py
@@ -76,7 +76,7 @@
 		temps.append(fname)
 		sts = uncompress.copy(filename, fname)
 		if sts:
-			raise error, filename + ': uncomress failed'
+			raise error, filename + ': uncompress failed'
 	else:
 		fname = filename
 	try:
diff --git a/Lib/traceback.py b/Lib/traceback.py
index 4675077..d219340 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -117,7 +117,7 @@
 	have the same meaning as the corresponding arguments to
 	print_exception().  The return value is a list of strings, each
 	ending in a newline and some containing internal newlines.  When 
-	these lines are contatenated and printed, exactly the same text is
+	these lines are concatenated and printed, exactly the same text is
 	printed as does print_exception()."""
 	if tb:
 		list = ['Traceback (most recent call last):\n']
diff --git a/Lib/urllib.py b/Lib/urllib.py
index 7a98164..ac44249 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -773,7 +773,7 @@
             # just return it
             return url
     host, basepath = splithost(basepath) # inherit host
-    basepath, basetag = splittag(basepath) # remove extraneuous cruft
+    basepath, basetag = splittag(basepath) # remove extraneous cruft
     basepath, basequery = splitquery(basepath) # idem
     if path[:1] != '/':
         # non-absolute path name
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index c4e5348..86fdc20 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -456,7 +456,7 @@
     http_error_301 = http_error_302
 
     inf_msg = "The HTTP server returned a redirect error that would" \
-              "lead to an inifinte loop.\n" \
+              "lead to an infinite loop.\n" \
               "The last 302 error message was:\n"
 
 class ProxyHandler(BaseHandler):
diff --git a/Lib/wave.py b/Lib/wave.py
index 8bb9ff7..60c0b98 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -30,7 +30,7 @@
       tell()          -- return the current position
       close()         -- close the instance (make it unusable)
 The position returned by tell() and the position given to setpos()
-are compatible and have nothing to do with the actual postion in the
+are compatible and have nothing to do with the actual position in the
 file.
 The close() method is called automatically when the class instance
 is destroyed.
diff --git a/Lib/xml/sax/xmlreader.py b/Lib/xml/sax/xmlreader.py
index 8bc33d8..84a8bbb 100644
--- a/Lib/xml/sax/xmlreader.py
+++ b/Lib/xml/sax/xmlreader.py
@@ -50,7 +50,7 @@
     def setLocale(self, locale):
         """Allow an application to set the locale for errors and warnings. 
    
-        SAX parsers are not required to provide localisation for errors
+        SAX parsers are not required to provide localization for errors
         and warnings; if they cannot support the requested locale,
         however, they must throw a SAX exception. Applications may
         request a locale change in the middle of a parse."""
diff --git a/Lib/xmllib.py b/Lib/xmllib.py
index bbd4b54..06b599f 100644
--- a/Lib/xmllib.py
+++ b/Lib/xmllib.py
@@ -143,7 +143,7 @@
         self.__seen_starttag = 0
         self.__use_namespaces = 0
         self.__namespaces = {'xml':None}   # xml is implicitly declared
-        # backward compatipibility hack: if elements not overridden,
+        # backward compatibility hack: if elements not overridden,
         # fill it in ourselves
         if self.elements is XMLParser.elements:
             self.__fixelements()
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 321e79b..bda60dd 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -57,7 +57,7 @@
 "This module provides a simple useful replacement for\n"
 "the StringIO module that is written in C.  It does not provide the\n"
 "full generality of StringIO, but it provides enough for most\n"
-"applications and is especially useful in conjuction with the\n"
+"applications and is especially useful in conjunction with the\n"
 "pickle module.\n"
 "\n"
 "Usage:\n"
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index 5b88be5..e2aa6a1 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -22,7 +22,7 @@
  * fine but a program with two threads using forms will probably crash (unless
  * the program takes precaution to ensure that only one thread can be in
  * this module at any time). This will have to be fixed some time.
- * (A fix will probably also have to synchronise with the gl module).
+ * (A fix will probably also have to synchronize with the gl module).
  */
 
 #include "Python.h"
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 876bac0..0807fa3 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -92,7 +92,7 @@
  * That's it!
  *
  * Well, almost.  Once we have determined prefix and exec_prefix, the
- * preprocesor variable PYTHONPATH is used to construct a path.  Each
+ * preprocessor variable PYTHONPATH is used to construct a path.  Each
  * relative path on PYTHONPATH is prefixed with prefix.  Then the directory
  * containing the shared library modules is appended.  The environment
  * variable $PYTHONPATH is inserted in front of it all.  Finally, the
diff --git a/Modules/imgfile.c b/Modules/imgfile.c
index 0b9dd54..e1e798f 100644
--- a/Modules/imgfile.c
+++ b/Modules/imgfile.c
@@ -10,7 +10,7 @@
 
 /* IMGFILE module - Interface to sgi libimage */
 
-/* XXX This modele should be done better at some point. It should return
+/* XXX This module should be done better at some point. It should return
 ** an object of image file class, and have routines to manipulate these
 ** image files in a neater way (so you can get rgb images off a greyscale
 ** file, for instance, or do a straight display without having to get the
diff --git a/Modules/md5c.c b/Modules/md5c.c
index e747725..e6e7898 100644
--- a/Modules/md5c.c
+++ b/Modules/md5c.c
@@ -143,7 +143,7 @@
 }
 
 /* MD5 finalization. Ends an MD5 message-digest operation, writing the
-   the message digest and zeroizing the context.
+  the message digest and zeroing the context.
  */
 void
 MD5Final(unsigned char digest[16], MD5_CTX *context)
diff --git a/Modules/md5module.c b/Modules/md5module.c
index 545df2b..e3d5804 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -145,7 +145,7 @@
 straightforward: use the new() to create an md5 object. You can now\n\
 feed this object with arbitrary strings using the update() method, and\n\
 at any point you can ask it for the digest (a strong kind of 128-bit\n\
-checksum, a.k.a. ``fingerprint'') of the contatenation of the strings\n\
+checksum, a.k.a. ``fingerprint'') of the concatenation of the strings\n\
 fed to it so far using the digest() method.\n\
 \n\
 Functions:\n\
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index c3caa22..772e2af 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -701,7 +701,7 @@
    a larger map size, there is no point because all the useful operations
    (len(), slicing(), sequence indexing) are limited by a C int.
 
-   Returns -1 on error, with an apprpriate Python exception raised. On
+   Returns -1 on error, with an appropriate Python exception raised. On
    success, the map size is returned. */
 static int
 _GetMapSize(PyObject *o)
diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index accd967..d4882c2 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -1635,8 +1635,8 @@
 static mp_test_error( location )
 	int *location;
 {
-	/* assumptions: *alloc returns address dividable by 4,
-	mpz_* routines allocate in chunks dividable by four */
+	/* assumptions: *alloc returns address divisible by 4,
+	mpz_* routines allocate in chunks divisible by four */
 	fprintf(stderr, "MP_TEST_ERROR: location holds 0x%08d\n", *location );
 	Py_FatalError("MP_TEST_ERROR");
 } /* static mp_test_error() */
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index 27203c3..b5414af 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -66,7 +66,7 @@
                             int index,
                             PyObject* element);
 
-/*  The function below is copyrigthed by Stichting Mathematisch Centrum.  The
+/*  The function below is copyrighted by Stichting Mathematisch Centrum.  The
  *  original copyright statement is included below, and continues to apply
  *  in full to the function immediately following.  All other material is
  *  original, copyrighted by Fred L. Drake, Jr. and Virginia Polytechnic
@@ -2403,7 +2403,7 @@
             res = validate_compound_stmt(tree);
             break;
             /*
-             *  Fundemental statements.
+             *  Fundamental statements.
              */
           case expr_stmt:
             res = validate_expr_stmt(tree);
@@ -2552,7 +2552,7 @@
         else
             res = validate_newline(CHILD(tree, j));
     }
-    /*  This stays in to prevent any internal failues from getting to the
+    /*  This stays in to prevent any internal failures from getting to the
      *  user.  Hopefully, this won't be needed.  If a user reports getting
      *  this, we have some debugging to do.
      */
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 93f9ea9..2cf9881 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1360,7 +1360,7 @@
 \n\
 	path: path of executable file\n\
 	args: tuple or list of arguments\n\
-	env: dictonary of strings mapping to strings";
+	env: dictionary of strings mapping to strings";
 
 static PyObject *
 posix_execve(PyObject *self, PyObject *args)
@@ -1558,7 +1558,7 @@
 	mode: mode of process creation\n\
 	path: path of executable file\n\
 	args: tuple or list of arguments\n\
-	env: dictonary of strings mapping to strings";
+	env: dictionary of strings mapping to strings";
 
 static PyObject *
 posix_spawnve(PyObject *self, PyObject *args)
@@ -1700,7 +1700,7 @@
 #include <libutil.h>
 #else
 /* BSDI does not supply a prototype for the 'openpty' and 'forkpty'
-   functions, eventhough they are included in libutil. */
+   functions, even though they are included in libutil. */
 #include <termios.h>
 extern int openpty(int *, int *, char *, struct termios *, struct winsize *);
 extern int forkpty(int *, char *, struct termios *, struct winsize *);
@@ -3897,7 +3897,7 @@
 /* This is used for fpathconf(), pathconf(), confstr() and sysconf().
  * It maps strings representing configuration variable names to
  * integer values, allowing those functions to be called with the
- * magic names instead of poluting the module's namespace with tons of
+ * magic names instead of polluting the module's namespace with tons of
  * rarely-used constants.  There are three separate tables that use
  * these definitions.
  *
diff --git a/Modules/pypcre.c b/Modules/pypcre.c
index 2f493c0..18b319b 100644
--- a/Modules/pypcre.c
+++ b/Modules/pypcre.c
@@ -493,7 +493,7 @@
 
 caseless = ((re->options | options) & PCRE_CASELESS) != 0;
 
-/* For an anchored pattern, or an unchored pattern that has a first char, or a
+/* For an anchored pattern, or an unanchored pattern that has a first char, or a
 multiline pattern that matches only at "line starts", no further processing at
 present. */
 
@@ -1636,8 +1636,8 @@
           *code++ = (repeat_min & 255);
           }
 
-        /* If the mininum is 1 and the previous item was a character string,
-        we either have to put back the item that got cancelled if the string
+        /* If the minimum is 1 and the previous item was a character string,
+        we either have to put back the item that got canceled if the string
         length was 1, or add the character back onto the end of a longer
         string. For a character type nothing need be done; it will just get
         put back naturally. Note that the final character is always going to
@@ -1649,7 +1649,7 @@
           }
 
         /*  For a single negated character we also have to put back the
-        item that got cancelled. */
+        item that got canceled. */
 
         else if (*previous == OP_NOT) code++;
 
diff --git a/Modules/regexpr.c b/Modules/regexpr.c
index 98fa04c..70b7ee1 100644
--- a/Modules/regexpr.c
+++ b/Modules/regexpr.c
@@ -124,7 +124,7 @@
 	/* Structure to encapsulate the stack. */
 	struct
 	{
-		/* index into the curent page.  If index == 0 and you need
+		/* index into the current page.  If index == 0 and you need
 		 * to pop an item, move to the previous page and set index
 		 * = STACK_PAGE_SIZE - 1.  Otherwise decrement index to
 		 * push a page. If index == STACK_PAGE_SIZE and you need
diff --git a/Modules/regexpr.h b/Modules/regexpr.h
index dd66325..2aee62d 100644
--- a/Modules/regexpr.h
+++ b/Modules/regexpr.h
@@ -119,7 +119,7 @@
 
 int re_search(regexp_t compiled, unsigned char *string, int size, int startpos,
 	      int range, regexp_registers_t regs);
-/* This rearches for a substring matching the regexp.  This returns the
+/* This searches for a substring matching the regexp.  This returns the
  * first index at which a match is found.  range specifies at how many
  * positions to try matching; positive values indicate searching
  * forwards, and negative values indicate searching backwards.  mstop
diff --git a/Modules/resource.c b/Modules/resource.c
index 373e8d2..c0f52cf 100644
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -70,8 +70,8 @@
 		ru.ru_msgsnd,		     /* messages sent */
 		ru.ru_msgrcv,		     /* messages received */
 		ru.ru_nsignals,		     /* signals received */
-		ru.ru_nvcsw,		     /* voluntary context switchs */
-		ru.ru_nivcsw		     /* involuntary context switchs */
+		ru.ru_nvcsw,		     /* voluntary context switches */
+		ru.ru_nivcsw		     /* involuntary context switches */
 		);
 }
 
diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 4b0af22..a883f6a 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -553,7 +553,7 @@
  *	represents one pixel.  xsize and ysize specify the dimensions of
  *	the pixel array.  zsize specifies what kind of image file to
  *	write out.  if zsize is 1, the luminance of the pixels are
- *	calculated, and a sinlge channel black and white image is saved.
+ *	calculated, and a single channel black and white image is saved.
  *	If zsize is 3, an RGB image file is saved.  If zsize is 4, an
  *	RGBA image file is saved.
  *
diff --git a/Modules/rotormodule.c b/Modules/rotormodule.c
index 70ba032..6c0aff6 100644
--- a/Modules/rotormodule.c
+++ b/Modules/rotormodule.c
@@ -23,7 +23,7 @@
 ******************************************************************/
 
 /* This creates an encryption and decryption engine I am calling
-   a rotor due to the original design was a harware rotor with
+   a rotor due to the original design was a hardware rotor with
    contacts used in Germany during WWII.
 
 Rotor Module:
@@ -43,7 +43,7 @@
 NOTE: the {en,de}cryptmore() methods use the setup that was
       established via the {en,de}crypt calls. They will NOT
       re-initalize the rotors unless: 1) They have not been
-      initalized with {en,de}crypt since the last setkey() call;
+      initialized with {en,de}crypt since the last setkey() call;
       2) {en,de}crypt has not been called for this rotor yet.
 
 NOTE: you MUST use the SAME key in rotor.newrotor()
@@ -209,7 +209,7 @@
 }
 
 
-/* These routines impliment the rotor itself */
+/* These routines implement the rotor itself */
 
 /*  Here is a fairly sophisticated {en,de}cryption system.  It is based on
     the idea of a "rotor" machine.  A bunch of rotors, each with a
@@ -217,7 +217,7 @@
     after encrypting one character.  The current state of the rotors is
     used to encrypt one character.
 
-    The code is smart enought to tell if your alphabet has a number of
+    The code is smart enough to tell if your alphabet has a number of
     characters equal to a power of two.  If it does, it uses logical
     operations, if not it uses div and mod (both require a division).
 
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index 612d0d3..62a17a3 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -167,7 +167,7 @@
 joinfields(list [,sep]) -> string\n\
 \n\
 Return a string composed of the words in list, with\n\
-intervening occurences of sep.  Sep defaults to a single\n\
+intervening occurrences of sep.  Sep defaults to a single\n\
 space.\n\
 \n\
 (join and joinfields are synonymous)";
@@ -1040,10 +1040,10 @@
 /*
    mymemreplace
 
-   Return a string in which all occurences of PAT in memory STR are
+   Return a string in which all occurrences of PAT in memory STR are
    replaced with SUB.
 
-   If length of PAT is less than length of STR or there are no occurences
+   If length of PAT is less than length of STR or there are no occurrences
    of PAT in STR, then the original string is returned. Otherwise, a new
    string is allocated here and returned.
 
diff --git a/Modules/sunaudiodev.c b/Modules/sunaudiodev.c
index 5ef2c06..d4e5ec9 100644
--- a/Modules/sunaudiodev.c
+++ b/Modules/sunaudiodev.c
@@ -258,7 +258,7 @@
 		PyErr_SetFromErrno(SunAudioError);
 		return NULL;
 	}
-	/* x_ocount is in bytes, wheras play.samples is in frames */
+	/* x_ocount is in bytes, whereas play.samples is in frames */
 	/* we want frames */
 	return PyInt_FromLong(self->x_ocount / (ai.play.channels *
 						ai.play.precision / 8) -
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index a9891c4..2381ff8 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -36,7 +36,7 @@
   - Changed arg parsing to use PyArg_ParseTuple.
   - Added PyErr_Clear() call(s) where needed.
   - Fix core dumps if user message contains format specifiers.
-  - Change openlog arg defaults to match normal syslog behaviour.
+  - Change openlog arg defaults to match normal syslog behavior.
   - Plug memory leak in openlog().
   - Fix setlogmask() to return previous mask value.
 
diff --git a/Modules/tclNotify.c b/Modules/tclNotify.c
index 429416e..422c944 100644
--- a/Modules/tclNotify.c
+++ b/Modules/tclNotify.c
@@ -119,7 +119,7 @@
  *	None.
  *
  * Side effects:
- *	Clears the notifier intialization flag.
+ *	Clears the notifier initialization flag.
  *
  *----------------------------------------------------------------------
  */
@@ -202,7 +202,7 @@
  *	None.
  *
  * Side effects:
- *	The given event source is cancelled, so its procedure will
+ *	The given event source is canceled, so its procedure will
  *	never again be called.  If no such source exists, nothing
  *	happens.
  *
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 3643ce9..d1eb451 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -1077,7 +1077,7 @@
 	}
 	func = instance_getattr(inst, __contains__);
 	if(func == NULL) {
-		/* fall back to previous behaviour */
+		/* fall back to previous behavior */
 		int i, cmp_res;
 
 		if(!PyErr_ExceptionMatches(PyExc_AttributeError))
@@ -1160,7 +1160,7 @@
 		return result;
 	if (halfbinop(w, v, ropname, &result, thisfunc, 1) <= 0)
 		return result;
-	/* Sigh -- special case for comnparisons */
+	/* Sigh -- special case for comparisons */
 	if (strcmp(opname, "__cmp__") == 0) {
 		long c = (v < w) ? -1 : (v > w) ? 1 : 0;
 		return PyInt_FromLong(c);
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 76417b9..819fadd 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -185,7 +185,7 @@
 		/* Cycle through GF(2^n)-{0} */
 		incr = incr << 1;
 		if (incr > mask)
-			incr ^= mp->ma_poly; /* This will implicitely clear
+			incr ^= mp->ma_poly; /* This will implicitly clear
 						the highest bit */
 	}
 }
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 022c298..20bb370 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -311,7 +311,7 @@
 /*
 Integer overflow checking used to be done using a double, but on 64
 bit machines (where both long and double are 64 bit) this fails
-because the double doesn't have enouvg precision.  John Tromp suggests
+because the double doesn't have enough precision.  John Tromp suggests
 the following algorithm:
 
 Suppose again we normalize a and b to be nonnegative.
diff --git a/Objects/object.c b/Objects/object.c
index 64d8a82..ef3455e 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -337,7 +337,7 @@
 
 PyObject *_PyCompareState_Key;
 
-/* _PyCompareState_nesting is incremented beforing call compare (for
+/* _PyCompareState_nesting is incremented before calling compare (for
    some types) and decremented on exit.  If the count exceeds the
    nesting limit, enable code to detect circular data structures.
 */
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index ab44e91..80b9def 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -283,7 +283,7 @@
 		return 0;
 	}
 
-	/* figure out which quote to use; single is prefered */
+	/* figure out which quote to use; single is preferred */
 	quote = '\'';
 	if (strchr(op->ob_sval, '\'') && !strchr(op->ob_sval, '"'))
 		quote = '"';
@@ -321,7 +321,7 @@
 		register char *p;
 		int quote;
 
-		/* figure out which quote to use; single is prefered */
+		/* figure out which quote to use; single is preferred */
 		quote = '\'';
 		if (strchr(op->ob_sval, '\'') && !strchr(op->ob_sval, '"'))
 			quote = '"';
@@ -1416,10 +1416,10 @@
 /*
    mymemreplace
 
-   Return a string in which all occurences of PAT in memory STR are
+   Return a string in which all occurrences of PAT in memory STR are
    replaced with SUB.
 
-   If length of PAT is less than length of STR or there are no occurences
+   If length of PAT is less than length of STR or there are no occurrences
    of PAT in STR, then the original string is returned. Otherwise, a new
    string is allocated here and returned.
 
@@ -1689,7 +1689,7 @@
     if (!PyArg_ParseTuple(args, "|i:expandtabs", &tabsize))
 	return NULL;
 
-    /* First pass: determine size of ouput string */
+    /* First pass: determine size of output string */
     i = j = 0;
     e = PyString_AS_STRING(self) + PyString_GET_SIZE(self);
     for (p = PyString_AS_STRING(self); p < e; p++)
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 02d1b0d..12c5be4 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -3198,7 +3198,7 @@
     if (v == NULL)
 	goto onError;
 
-    /* Shortcut for emtpy or interned objects */
+    /* Shortcut for empty or interned objects */
     if (v == u) {
 	Py_DECREF(u);
 	Py_DECREF(v);
@@ -3385,7 +3385,7 @@
     if (!PyArg_ParseTuple(args, "|i:expandtabs", &tabsize))
 	return NULL;
 
-    /* First pass: determine size of ouput string */
+    /* First pass: determine size of output string */
     i = j = 0;
     e = self->str + self->length;
     for (p = self->str; p < e; p++)
diff --git a/PC/_winreg.c b/PC/_winreg.c
index 75ceb8b..84bf3c4 100644
--- a/PC/_winreg.c
+++ b/PC/_winreg.c
@@ -658,7 +658,7 @@
 ** Note that fixupMultiSZ and countString have both had changes
 ** made to support "incorrect strings".  The registry specification
 ** calls for strings to be terminated with 2 null bytes.  It seems
-** some commercial packages install strings whcich dont conform,
+** some commercial packages install strings which dont conform,
 ** causing this code to fail - however, "regedit" etc still work
 ** with these strings (ie only we dont!).
 */
diff --git a/Parser/pgen.c b/Parser/pgen.c
index e5d5d37..dbaadbd 100644
--- a/Parser/pgen.c
+++ b/Parser/pgen.c
@@ -575,7 +575,7 @@
    equivalent to another oner.  This is NOT Algorithm 3.3 from
    [Aho&Ullman 77].  It does not always finds the minimal DFA,
    but it does usually make a much smaller one...  (For an example
-   of sub-optimal behaviour, try S: x a b+ | y a b+.)
+   of sub-optimal behavior, try S: x a b+ | y a b+.)
 */
 
 static int
diff --git a/Python/ceval.c b/Python/ceval.c
index bcdd98f..3225685 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2769,7 +2769,7 @@
 			/* Call the base's *type*, if it is callable.
 			   This code is a hook for Donald Beaudry's
 			   and Jim Fulton's type extensions.  In
-			   unexended Python it will never be triggered
+			   unextended Python it will never be triggered
 			   since its types are not callable.
 			   Ditto: call the bases's *class*, if it has
 			   one.  This makes the same thing possible
diff --git a/Python/codecs.c b/Python/codecs.c
index 27331ab..20791f5 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -146,7 +146,7 @@
     }
 
     /* Convert the encoding to a normalized Python string: all
-       characters are converted to lower case, spaces and hypens are
+       characters are converted to lower case, spaces and hyphens are
        replaced with underscores. */
     v = normalizestring(encoding);
     if (v == NULL)
@@ -427,7 +427,7 @@
 	_PyCodec_SearchCache = PyDict_New();
     if (_PyCodec_SearchPath == NULL || 
 	_PyCodec_SearchCache == NULL)
-	Py_FatalError("can't intialize codec registry");
+	Py_FatalError("can't initialize codec registry");
 }
 
 void _PyCodecRegistry_Fini()
diff --git a/Python/dynload_aix.c b/Python/dynload_aix.c
index 9c6b60a..04e6293 100644
--- a/Python/dynload_aix.c
+++ b/Python/dynload_aix.c
@@ -189,7 +189,7 @@
 	/*
 	-- Invoke load() with L_NOAUTODEFER leaving the imported symbols
 	-- of the shared module unresolved. Thus we have to resolve them
-	-- explicitely with loadbind. The new module is loaded, then we
+	-- explicitly with loadbind. The new module is loaded, then we
 	-- resolve its symbols using the list of already loaded modules
 	-- (only those that belong to the python executable). Get these
 	-- with loadquery(L_GETINFO).
diff --git a/Python/dynload_next.c b/Python/dynload_next.c
index 2d02cc6..a352edc 100644
--- a/Python/dynload_next.c
+++ b/Python/dynload_next.c
@@ -162,7 +162,7 @@
 			return NULL;
 		}
 		if (!NSIsSymbolNameDefined(funcname)) {
-			/* UnlinkModule() isn't implimented in current versions, but calling it does no harm */
+			/* UnlinkModule() isn't implemented in current versions, but calling it does no harm */
 			NSUnLinkModule(newModule, FALSE);
 			PyErr_Format(PyExc_ImportError,
 				     "Loaded module does not contain symbol %.200s",
diff --git a/Python/exceptions.c b/Python/exceptions.c
index 05e318e..b63daee 100644
--- a/Python/exceptions.c
+++ b/Python/exceptions.c
@@ -183,7 +183,7 @@
 {
     PyObject* self = PyTuple_GetItem(args, 0);
     if (!self) {
-	/* Watch out for being called to early in the bootstapping process */
+	/* Watch out for being called to early in the bootstrapping process */
 	if (PyExc_TypeError) {
 	    PyErr_SetString(PyExc_TypeError,
 	     "unbound method must be called with class instance 1st argument");
diff --git a/Python/getargs.c b/Python/getargs.c
index 11754ef..3ed65a3 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -13,7 +13,7 @@
 /* XXX There are several unchecked sprintf or strcat calls in this file.
    XXX The only way these can become a danger is if some C code in the
    XXX Python source (or in an extension) uses ridiculously long names
-   XXX or riduculously deep nesting in format strings. */
+   XXX or ridiculously deep nesting in format strings. */
 
 #include "Python.h"
 
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index afb9589..cc942a3 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -75,7 +75,7 @@
 
 static int initialized = 0;
 
-/* API to access the initialized flag -- useful for eroteric use */
+/* API to access the initialized flag -- useful for esoteric use */
 
 int
 Py_IsInitialized()
diff --git a/Python/strtod.c b/Python/strtod.c
index a0991d5..0673fca 100644
--- a/Python/strtod.c
+++ b/Python/strtod.c
@@ -69,7 +69,7 @@
 	register char *sp, *dp;
 	register int c;
 	char *buforg, *buflim;
-	char buffer[64];		/* 45-digit significand + */
+	char buffer[64];		/* 45-digit significant + */
 					/* 13-digit exponent */
 	sp = str;
 	while (*sp == ' ') sp++;
diff --git a/Python/thread_lwp.h b/Python/thread_lwp.h
index fcfabf5..5d73242 100644
--- a/Python/thread_lwp.h
+++ b/Python/thread_lwp.h
@@ -13,7 +13,7 @@
 #include <lwp/stackdep.h>
 
 #define STACKSIZE	1000	/* stacksize for a thread */
-#define NSTACKS		2	/* # stacks to be put in cache initialy */
+#define NSTACKS		2	/* # stacks to be put in cache initially */
 
 struct lock {
 	int lock_locked;
diff --git a/Python/thread_os2.h b/Python/thread_os2.h
index 2371aae..0709e06 100644
--- a/Python/thread_os2.h
+++ b/Python/thread_os2.h
@@ -122,7 +122,7 @@
     PyThread_init_thread();
 
   DosCreateMutexSem(NULL,  /* Sem name      */
-                    &aLock, /* the semaphone */
+                    &aLock, /* the semaphore */
                     0,     /* shared ?      */
                     0);    /* initial state */  
 
diff --git a/Tools/freeze/checkextensions_win32.py b/Tools/freeze/checkextensions_win32.py
index e90bdab..85c3a3c 100644
--- a/Tools/freeze/checkextensions_win32.py
+++ b/Tools/freeze/checkextensions_win32.py
@@ -1,7 +1,7 @@
 """Extension management for Windows.
 
 Under Windows it is unlikely the .obj files are of use, as special compiler options
-are needed (primarily to toggle the behaviour of "public" symbols.
+are needed (primarily to toggle the behavior of "public" symbols.
 
 I dont consider it worth parsing the MSVC makefiles for compiler options.  Even if
 we get it just right, a specific freeze application may have specific compiler
diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py
index 95f0662..eea8134 100755
--- a/Tools/freeze/freeze.py
+++ b/Tools/freeze/freeze.py
@@ -54,7 +54,7 @@
               'console' (default), 'windows', 'service' or 'com_dll'
               
 -w:           Toggle Windows (NT or 95) behavior.
-              (For debugging only -- on a win32 platform, win32 behaviour
+              (For debugging only -- on a win32 platform, win32 behavior
               is automatic.)
 
 Arguments:
diff --git a/Tools/freeze/modulefinder.py b/Tools/freeze/modulefinder.py
index 7260614..a75e2f3 100644
--- a/Tools/freeze/modulefinder.py
+++ b/Tools/freeze/modulefinder.py
@@ -25,7 +25,7 @@
 # Modulefinder does a good job at simulating Python's, but it can not
 # handle __path__ modifications packages make at runtime.  Therefore there
 # is a mechanism whereby you can register extra paths in this map for a
-# package, and it will be honoured.
+# package, and it will be honored.
 
 # Note this is a mapping is lists of paths.
 packagePathMap = {}
@@ -365,7 +365,7 @@
         keys = self.badmodules.keys()
         keys.sort()
         for key in keys:
-            # ... but not if they were explicitely excluded.
+            # ... but not if they were explicitly excluded.
             if key not in self.excludes:
                 mods = self.badmodules[key].keys()
                 mods.sort()