diff --git a/Lib/distutils/command/bdist.py b/Lib/distutils/command/bdist.py
index c0cb1d3..a75303e 100644
--- a/Lib/distutils/command/bdist.py
+++ b/Lib/distutils/command/bdist.py
@@ -45,7 +45,7 @@
     help_options = [
         ('help-formats', None,
          "lists available distribution formats", show_formats),
-	]
+        ]
 
     # The following commands do not take a format option from bdist
     no_format_option = ('bdist_rpm',)
diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index 0fed6b4..cf35b45 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -47,7 +47,7 @@
     help_options = [
         ('help-compiler', None,
          "list available compilers", show_compilers),
-	]
+        ]
 
     def initialize_options (self):
         self.build_base = 'build'
diff --git a/Lib/distutils/command/build_clib.py b/Lib/distutils/command/build_clib.py
index 2726b97..063da91 100644
--- a/Lib/distutils/command/build_clib.py
+++ b/Lib/distutils/command/build_clib.py
@@ -53,7 +53,7 @@
     help_options = [
         ('help-compiler', None,
          "list available compilers", show_compilers),
-	]
+        ]
 
     def initialize_options (self):
         self.build_clib = None
diff --git a/Lib/distutils/command/clean.py b/Lib/distutils/command/clean.py
index fb8822f..b4a9be4 100644
--- a/Lib/distutils/command/clean.py
+++ b/Lib/distutils/command/clean.py
@@ -60,7 +60,7 @@
             # remove build directories
             for directory in (self.build_lib,
                               self.bdist_base,
-			      self.build_scripts):
+                              self.build_scripts):
                 if os.path.exists(directory):
                     remove_tree(directory, self.verbose, self.dry_run)
                 else:
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index 012b9f4..6aee1b3 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -498,7 +498,7 @@
                          self.record)
 
         sys_path = map(os.path.normpath, sys.path)
-	sys_path = map(os.path.normcase, sys_path)
+        sys_path = map(os.path.normcase, sys_path)
         install_lib = os.path.normcase(os.path.normpath(self.install_lib))
         if (self.warn_dir and
             not (self.path_file and self.install_path_file) and
diff --git a/Lib/distutils/command/install_data.py b/Lib/distutils/command/install_data.py
index d9a4869..dba108a 100644
--- a/Lib/distutils/command/install_data.py
+++ b/Lib/distutils/command/install_data.py
@@ -38,10 +38,10 @@
 
     def finalize_options (self):
         self.set_undefined_options('install',
-	                           ('install_data', 'install_dir'),
-				   ('root', 'root'),
+                                   ('install_data', 'install_dir'),
+                                   ('root', 'root'),
                                    ('force', 'force'),
-				  )
+                                  )
 
     def run (self):
         self.mkpath(self.install_dir)
diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py
index 5116868..1f9e918 100644
--- a/Lib/distutils/command/sdist.py
+++ b/Lib/distutils/command/sdist.py
@@ -74,7 +74,7 @@
     help_options = [
         ('help-formats', None,
          "list available distribution formats", show_formats),
-	]
+        ]
 
     negative_opt = {'no-defaults': 'use-defaults',
                     'no-prune': 'prune' }
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index 92d390f..abbc160 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -284,7 +284,7 @@
             user_filename = ".pydistutils.cfg"
         else:
             user_filename = "pydistutils.cfg"
-	
+
         # And look for the user config file
         if os.environ.has_key('HOME'):
             user_file = os.path.join(os.environ.get('HOME'), user_filename)
@@ -461,8 +461,8 @@
             negative_opt = copy(negative_opt)
             negative_opt.update(cmd_class.negative_opt)
 
-	# Check for help_options in command class.  They have a different
-	# format (tuple of four) so we need to preprocess them here.
+        # Check for help_options in command class.  They have a different
+        # format (tuple of four) so we need to preprocess them here.
         if (hasattr(cmd_class, 'help_options') and
             type(cmd_class.help_options) is ListType):
             help_options = fix_help_options(cmd_class.help_options)
@@ -487,7 +487,7 @@
             for (help_option, short, desc, func) in cmd_class.help_options:
                 if hasattr(opts, parser.get_attr_name(help_option)):
                     help_option_found=1
-		    #print "showing help for option %s of command %s" % \
+                    #print "showing help for option %s of command %s" % \
                     #      (help_option[0],cmd_class)
 
                     if callable(func):
@@ -563,7 +563,7 @@
         return
 
     # _show_help ()
-	
+
 
     def handle_display_options (self, option_order):
         """If there were any non-global "display-only" options
