#18803: fix more typos.  Patch by Févry Thibault.
diff --git a/Tools/freeze/checkextensions_win32.py b/Tools/freeze/checkextensions_win32.py
index e5a8b29..8c6444c 100644
--- a/Tools/freeze/checkextensions_win32.py
+++ b/Tools/freeze/checkextensions_win32.py
@@ -3,7 +3,7 @@
 Under Windows it is unlikely the .obj files are of use, as special compiler options
 are needed (primarily to toggle the behavior of "public" symbols.
 
-I dont consider it worth parsing the MSVC makefiles for compiler options.  Even if
+I don't 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
 options anyway (eg, to enable or disable specific functionality)
 
@@ -14,7 +14,7 @@
   your own).
 * This description can include:
   - The MSVC .dsp file for the extension.  The .c source file names
-    are extraced from there.
+    are extracted from there.
   - Specific compiler/linker options
   - Flag to indicate if Unicode compilation is expected.
 
diff --git a/Tools/freeze/makefreeze.py b/Tools/freeze/makefreeze.py
index 1208b67..c0f5056 100644
--- a/Tools/freeze/makefreeze.py
+++ b/Tools/freeze/makefreeze.py
@@ -62,7 +62,7 @@
         outfp.write('\t{"%s", M_%s, %d},\n' % (mod, mangled, size))
     outfp.write('\n')
     # The following modules have a NULL code pointer, indicating
-    # that the prozen program should not search for them on the host
+    # that the frozen program should not search for them on the host
     # system. Importing them will *always* raise an ImportError.
     # The zero value size is never used.
     for mod in fail_import:
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
index e12769d..b4bfdcc 100644
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -617,7 +617,7 @@
     def iteritems(self):
         '''
         Yields a sequence of (PyObjectPtr key, PyObjectPtr value) pairs,
-        analagous to dict.iteritems()
+        analogous to dict.iteritems()
         '''
         for i in safe_range(self.field('ma_mask') + 1):
             ep = self.field('ma_table') + i
diff --git a/Tools/i18n/msgfmt.py b/Tools/i18n/msgfmt.py
index 8c9b9dc..2502a10 100755
--- a/Tools/i18n/msgfmt.py
+++ b/Tools/i18n/msgfmt.py
@@ -144,7 +144,7 @@
         # This is a message with plural forms
         elif l.startswith('msgid_plural'):
             if section != ID:
-                print >> sys.stderr, 'msgid_plural not preceeded by msgid on %s:%d' %\
+                print >> sys.stderr, 'msgid_plural not preceded by msgid on %s:%d' %\
                     (infile, lno)
                 sys.exit(1)
             l = l[12:]
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index e02a3e2..760471c 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -305,7 +305,7 @@
         t.create(db)
     # Fill the validation table
     add_data(db, "_Validation", schema._Validation_records)
-    # Initialize the summary information, allowing atmost 20 properties
+    # Initialize the summary information, allowing at most 20 properties
     si = db.GetSummaryInformation(20)
     si.SetProperty(PID_TITLE, "Installation Database")
     si.SetProperty(PID_SUBJECT, ProductName)
diff --git a/Tools/pybench/CommandLine.py b/Tools/pybench/CommandLine.py
index 6601be5..fde3178 100644
--- a/Tools/pybench/CommandLine.py
+++ b/Tools/pybench/CommandLine.py
@@ -458,7 +458,7 @@
                 handler = getattr(self, handlername)
             except AttributeError:
                 if value == '':
-                    # count the number of occurances
+                    # count the number of occurrences
                     if values.has_key(optionname):
                         values[optionname] = values[optionname] + 1
                     else:
diff --git a/Tools/pybench/systimes.py b/Tools/pybench/systimes.py
index 013add2..db1210d 100644
--- a/Tools/pybench/systimes.py
+++ b/Tools/pybench/systimes.py
@@ -5,7 +5,7 @@
 
     This module implements various different strategies for measuring
     performance timings. It tries to choose the best available method
-    based on the platforma and available tools.
+    based on the platform and available tools.
 
     On Windows, it is recommended to have the Mark Hammond win32
     package installed. Alternatively, the Thomas Heller ctypes
diff --git a/Tools/pynche/DetailsViewer.py b/Tools/pynche/DetailsViewer.py
index 11a99a6..fb597b5 100644
--- a/Tools/pynche/DetailsViewer.py
+++ b/Tools/pynche/DetailsViewer.py
@@ -26,7 +26,7 @@
         other side.  Thus if red were at 238 and 25 were added to it, red
         would have the value 7.
 
-    Preseve Distance
+    Preserve Distance
         When the increment or decrement would send any of the tied variations
         out of bounds, all tied variations are wrapped as one, so as to
         preserve the distance between them.  Thus if green and blue were tied,
diff --git a/Tools/scripts/fixnotice.py b/Tools/scripts/fixnotice.py
index 0ae4872..e613b65 100755
--- a/Tools/scripts/fixnotice.py
+++ b/Tools/scripts/fixnotice.py
@@ -2,7 +2,7 @@
 
 """(Ostensibly) fix copyright notices in files.
 
-Actually, this sript will simply replace a block of text in a file from one
+Actually, this script will simply replace a block of text in a file from one
 string to another.  It will only do this once though, i.e. not globally
 throughout the file.  It writes a backup file and then does an os.rename()
 dance for atomicity.
diff --git a/Tools/scripts/ifdef.py b/Tools/scripts/ifdef.py
index 2ed7a66..5487f1a 100755
--- a/Tools/scripts/ifdef.py
+++ b/Tools/scripts/ifdef.py
@@ -9,11 +9,11 @@
 # options.  On standard output it writes a copy of the input file(s)
 # minus those code sections that are suppressed by the selected
 # combination of defined/undefined symbols.  The #if(n)def/#else/#else
-# lines themselfs (if the #if(n)def tests for one of the mentioned
+# lines themselves (if the #if(n)def tests for one of the mentioned
 # names) are removed as well.
 
 # Features: Arbitrary nesting of recognized and unrecognized
-# preprocesor statements works correctly.  Unrecognized #if* commands
+# preprocessor statements works correctly.  Unrecognized #if* commands
 # are left in place, so it will never remove too much, only too
 # little.  It does accept whitespace around the '#' character.
 
diff --git a/Tools/scripts/pathfix.py b/Tools/scripts/pathfix.py
index 7f6f191..850903a 100755
--- a/Tools/scripts/pathfix.py
+++ b/Tools/scripts/pathfix.py
@@ -135,7 +135,7 @@
     except os.error, msg:
         err('%s: rename failed (%r)\n' % (filename, msg))
         return 1
-    # Return succes
+    # Return success
     return 0
 
 def fixline(line):