Removed duplicated words in in comments and docs.
diff --git a/Lib/hashlib.py b/Lib/hashlib.py
index 4a411bc..bbd06b9 100644
--- a/Lib/hashlib.py
+++ b/Lib/hashlib.py
@@ -187,7 +187,7 @@
 
         def prf(msg, inner=inner, outer=outer):
             # PBKDF2_HMAC uses the password as key. We can re-use the same
-            # digest objects and and just update copies to skip initialization.
+            # digest objects and just update copies to skip initialization.
             icpy = inner.copy()
             ocpy = outer.copy()
             icpy.update(msg)
diff --git a/Lib/test/test_docxmlrpc.py b/Lib/test/test_docxmlrpc.py
index 80d1803..a1a1fcf 100644
--- a/Lib/test/test_docxmlrpc.py
+++ b/Lib/test/test_docxmlrpc.py
@@ -10,7 +10,7 @@
 PORT = None
 
 def make_request_and_skipIf(condition, reason):
-    # If we skip the test, we have to make a request because the
+    # If we skip the test, we have to make a request because
     # the server created in setUp blocks expecting one to come in.
     if not condition:
         return lambda func: func
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 4d0c8fa..379423c 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -8496,7 +8496,7 @@
 
 
 /* This code is used to ensure that the tables of configuration value names
- * are in sorted order as required by conv_confname(), and also to build the
+ * are in sorted order as required by conv_confname(), and also to build
  * the exported dictionaries that are used to publish information about the
  * names available on the host platform.
  *
diff --git a/Python/pystrtod.c b/Python/pystrtod.c
index 859af43..ae6ab9c 100644
--- a/Python/pystrtod.c
+++ b/Python/pystrtod.c
@@ -324,7 +324,7 @@
 
    On overflow (e.g., when trying to convert '1e500' on an IEEE 754 machine),
    if overflow_exception is NULL then +-Py_HUGE_VAL is returned, and no Python
-   exception is raised.  Otherwise, overflow_exception should point to a
+   exception is raised.  Otherwise, overflow_exception should point to
    a Python exception, this exception will be raised, -1.0 will be returned,
    and *endptr will point just past the end of the converted value.
 
diff --git a/Python/random.c b/Python/random.c
index 0776bfc..1e5776d 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -274,7 +274,7 @@
 }
 
 /* Fill buffer with size pseudo-random bytes from the operating system random
-   number generator (RNG). It is suitable for for most cryptographic purposes
+   number generator (RNG). It is suitable for most cryptographic purposes
    except long living private keys for asymmetric encryption.
 
    Return 0 on success, raise an exception and return -1 on error. */
diff --git a/Python/thread.c b/Python/thread.c
index dd333e8..c54670d 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -271,7 +271,7 @@
         if (p->id == id && p->key == key)
             goto Done;
         /* Sanity check.  These states should never happen but if
-         * they do we must abort.  Otherwise we'll end up spinning in
+         * they do we must abort.  Otherwise we'll end up spinning
          * in a tight loop with the lock held.  A similar check is done
          * in pystate.c tstate_delete_common().  */
         if (p == prev_p)