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/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.
  *