Fix a bunch of typos in documentation, docstrings and comments.
(From SF patch #810751)
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 27c3297..b338aea 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -224,7 +224,7 @@
 	Py_END_ALLOW_THREADS
 	SSL_set_fd(self->ssl, Sock->sock_fd);	/* Set the socket for SSL */
 
-	/* If the socket is is non-blocking mode or timeout mode, set the BIO
+	/* If the socket is in non-blocking mode or timeout mode, set the BIO
 	 * to non-blocking mode (blocking is the default)
 	 */
 	if (Sock->sock_timeout >= 0.0) {
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 0d553d4..3de1c65 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -899,7 +899,7 @@
  * result.  tzinfo must be an instance of the tzinfo class.  If dst()
  * returns None, call_dst returns 0 and sets *none to 1.  If dst()
  & doesn't return None or timedelta, TypeError is raised and this
- * returns -1.  If dst() returns an invalid timedelta for for a UTC offset,
+ * returns -1.  If dst() returns an invalid timedelta for a UTC offset,
  * ValueError is raised and this returns -1.  Else *none is set to 0 and
  * the offset is returned (as an int # of minutes east of UTC).
  */
@@ -4818,7 +4818,7 @@
 
 Because we know z.d said z was in daylight time (else [5] would have held and
 we would have stopped then), and we know z.d != z'.d (else [8] would have held
-and we we have stopped then), and there are only 2 possible values dst() can
+and we would have stopped then), and there are only 2 possible values dst() can
 return in Eastern, it follows that z'.d must be 0 (which it is in the example,
 but the reasoning doesn't depend on the example -- it depends on there being
 two possible dst() outcomes, one zero and the other non-zero).  Therefore
diff --git a/Modules/main.c b/Modules/main.c
index 83721da..2cb2b64 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -154,7 +154,7 @@
 		if (c == 'c') {
 			/* -c is the last option; following arguments
 			   that look like options are left for the
-			   the command to interpret. */
+			   command to interpret. */
 			command = malloc(strlen(_PyOS_optarg) + 2);
 			if (command == NULL)
 				Py_FatalError(
diff --git a/Modules/md5c.c b/Modules/md5c.c
index ee89fec..f9bea0f 100644
--- a/Modules/md5c.c
+++ b/Modules/md5c.c
@@ -141,7 +141,7 @@
 }
 
 /* MD5 finalization. Ends an MD5 message-digest operation, writing the
-  the message digest and zeroing the context.
+  message digest and zeroing the context.
  */
 void
 MD5Final(unsigned char digest[16], MD5_CTX *context)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index f5787c3..a882023 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3953,7 +3953,7 @@
 
 	/* Create new output read handle and the input write handle. Set
 	 * the inheritance properties to FALSE. Otherwise, the child inherits
-	 * the these handles; resulting in non-closeable handles to the pipes
+	 * these handles; resulting in non-closeable handles to the pipes
 	 * being created. */
 	 fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdinWr,
 				    GetCurrentProcess(), &hChildStdinWrDup, 0,
diff --git a/Modules/pypcre.c b/Modules/pypcre.c
index a6ba17c..6c93326 100644
--- a/Modules/pypcre.c
+++ b/Modules/pypcre.c
@@ -573,7 +573,7 @@
 
 /* #define DEBUG */
 
-/* Use a macro for debugging printing, 'cause that eliminates the the use
+/* Use a macro for debugging printing, 'cause that eliminates the use
 of #ifdef inline, and there are *still* stupid compilers about that don't like
 indented pre-processor statements. I suppose it's only been 10 years... */
 
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 4a2fb58..427fb29 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -105,7 +105,7 @@
 \n\
  [*] not available on all platforms!");
 
-/* XXX This is a terrible mess of of platform-dependent preprocessor hacks.
+/* XXX This is a terrible mess of platform-dependent preprocessor hacks.
    I hope some day someone can clean this up please... */
 
 /* Hacks for gethostbyname_r().  On some non-Linux platforms, the configure