diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index 933060a..eb6200f 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -304,7 +304,7 @@
 
     def add_link_object (self, object):
         """Add 'object' to the list of object files (or analogues, such as
-        explictly named library files or the output of "resource
+        explicitly named library files or the output of "resource
         compilers") to be included in every link driven by this compiler
         object.
         """
diff --git a/Lib/distutils/cmd.py b/Lib/distutils/cmd.py
index d450ad3..8beb5d4 100644
--- a/Lib/distutils/cmd.py
+++ b/Lib/distutils/cmd.py
@@ -55,7 +55,7 @@
         # commands fallback on the Distribution's behaviour.  None means
         # "not defined, check self.distribution's copy", while 0 or 1 mean
         # false and true (duh).  Note that this means figuring out the real
-        # value of each flag is a touch complicatd -- hence "self.verbose"
+        # value of each flag is a touch complicated -- hence "self.verbose"
         # (etc.) will be handled by __getattr__, below.
         self._verbose = None
         self._dry_run = None
diff --git a/Lib/distutils/command/bdist_rpm.py b/Lib/distutils/command/bdist_rpm.py
index 7f58a1d..3302eea 100644
--- a/Lib/distutils/command/bdist_rpm.py
+++ b/Lib/distutils/command/bdist_rpm.py
@@ -400,7 +400,7 @@
         ]
 
         for (rpm_opt, attr, default) in script_options:
-            # Insert contents of file refered to, if no file is refered to
+            # Insert contents of file referred to, if no file is refered to
             # use 'default' as contents of script
             val = getattr(self, attr)
             if val or default:
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index 2ede447..c04036b 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -394,7 +394,7 @@
             #     elegant, but people seem to expect it and I
             #     guess it's useful)
             # The environment variable should take precedence, and
-            # any sensible compiler will give precendence to later
+            # any sensible compiler will give precedence to later
             # command line args.  Hence we combine them in order:
             extra_args = ext.extra_compile_args or []
 
diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py
index 6467e65..17fae8f 100644
--- a/Lib/distutils/command/build_scripts.py
+++ b/Lib/distutils/command/build_scripts.py
@@ -46,7 +46,7 @@
         """Copy each script listed in 'self.scripts'; if it's marked as a
         Python script in the Unix way (first line matches 'first_line_re',
         ie. starts with "\#!" and contains "python"), then adjust the first
-        line to refer to the current Python intepreter as we copy.
+        line to refer to the current Python interpreter as we copy.
         """
         outfiles = []
         self.mkpath(self.build_dir)
diff --git a/Lib/distutils/command/install_data.py b/Lib/distutils/command/install_data.py
index 716febb..9193f91 100644
--- a/Lib/distutils/command/install_data.py
+++ b/Lib/distutils/command/install_data.py
@@ -18,7 +18,7 @@
 
     user_options = [
         ('install-dir=', 'd',
-         "base directory for installating data files "
+         "base directory for installing data files "
          "(default: installation base dir)"),
         ('root=', None,
          "install everything relative to this alternate root directory"),
diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py
index 7d43f02..650627f 100644
--- a/Lib/distutils/cygwinccompiler.py
+++ b/Lib/distutils/cygwinccompiler.py
@@ -145,7 +145,7 @@
                         ]
         
         # who wants symbols and a many times larger output file
-        # should explicitely switch the debug mode on 
+        # should explicitly switch the debug mode on 
         # otherwise we let dllwrap strip the output file
         # (On my machine unstripped_file = stripped_file + 254KB
         #   10KB < stripped_file < ??100KB ) 
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index 5f81c88..ed829fe 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -167,7 +167,7 @@
         # It's only safe to query 'have_run' for a command class that has
         # been instantiated -- a false value will be inserted when the
         # command object is created, and replaced with a true value when
-        # the command is succesfully run.  Thus it's probably best to use
+        # the command is successfully run.  Thus it's probably best to use
         # '.get()' rather than a straight lookup.
         self.have_run = {}
 
@@ -677,7 +677,7 @@
 
     def get_command_obj (self, command, create=1):
         """Return the command object for 'command'.  Normally this object
-        is cached on a previous call to 'get_command_obj()'; if no comand
+        is cached on a previous call to 'get_command_obj()'; if no command
         object for 'command' is in the cache, then we either create and
         return it (if 'create' is true) or return None.
         """
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index ebfdf0a..0bff3a5 100644
--- a/Lib/distutils/util.py
+++ b/Lib/distutils/util.py
@@ -105,7 +105,7 @@
        guarantee that users can use in config files, command-line
        options, etc.  Currently this includes:
          HOME - user's home directory (Unix only)
-         PLAT - desription of the current platform, including hardware
+         PLAT - description of the current platform, including hardware
                 and OS (see 'get_platform()')
     """
 
@@ -125,7 +125,7 @@
 
 def subst_vars (str, local_vars):
     """Perform shell/Perl-style variable substitution on 'string'.
-       Every occurence of '$' followed by a name, or a name enclosed in
+       Every occurrence of '$' followed by a name, or a name enclosed in
        braces, is considered a variable.  Every variable is substituted by
        the value found in the 'local_vars' dictionary, or in 'os.environ'
        if it's not in 'local_vars'.  'os.environ' is first checked/
