diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index 1586e60..e6c87bf 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -12,6 +12,8 @@
 
 class Build (Command):
 
+    description = "build everything needed to install"
+
     options = [('build-base=', 'b',
                 "base directory for build library"),
                ('build-lib=', 'l',
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index d38cb18..4f7e53f 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -11,8 +11,6 @@
 import sys, os, string, re
 from types import *
 from distutils.core import Command
-from distutils.ccompiler import new_compiler
-from distutils.sysconfig import INCLUDEPY, SO, exec_prefix
 from distutils.errors import *
 
 
@@ -24,6 +22,8 @@
 
 class BuildExt (Command):
     
+    description = "build C/C++ extensions (compile/link to build directory)"
+
     # XXX thoughts on how to deal with complex command-line options like
     # these, i.e. how to make it so fancy_getopt can suck them off the
     # command line and make it look like setup.py defined the appropriate
@@ -76,6 +76,8 @@
 
 
     def set_final_options (self):
+        from distutils import sysconfig
+
         self.set_undefined_options ('build', ('build_platlib', 'build_dir'))
 
         if self.package is None:
@@ -88,8 +90,8 @@
         # etc.) are in the include search path.  We have to roll our own
         # "exec include dir", because the Makefile parsed by sysconfig
         # doesn't have it (sigh).
-        py_include = INCLUDEPY         # prefix + "include" + "python" + ver
-        exec_py_include = os.path.join (exec_prefix, 'include',
+        py_include = sysconfig.INCLUDEPY # prefix + "include" + "python" + ver
+        exec_py_include = os.path.join (sysconfig.exec_prefix, 'include',
                                         'python' + sys.version[0:3])
         if self.include_dirs is None:
             self.include_dirs = self.distribution.include_dirs or []
@@ -104,6 +106,8 @@
 
     def run (self):
 
+        from distutils.ccompiler import new_compiler
+
         # 'self.extensions', as supplied by setup.py, is a list of 2-tuples.
         # Each tuple is simple:
         #    (ext_name, build_info)
@@ -246,9 +250,10 @@
 
 
     def extension_filename (self, ext_name, package=None):
+        from distutils import sysconfig
         if package:
             ext_name = package + '.' + ext_name
         ext_path = string.split (ext_name, '.')
-        return apply (os.path.join, ext_path) + SO
+        return apply (os.path.join, ext_path) + sysconfig.SO
 
 # class BuildExt
diff --git a/Lib/distutils/command/build_py.py b/Lib/distutils/command/build_py.py
index e27a36d..57ddf7e 100644
--- a/Lib/distutils/command/build_py.py
+++ b/Lib/distutils/command/build_py.py
@@ -16,6 +16,8 @@
 
 class BuildPy (Command):
 
+    description = "\"build\" pure Python modules (copy to build directory)"
+
     options = [('build-dir=', 'd', "directory for platform-shared files"),
               ]
 
diff --git a/Lib/distutils/command/dist.py b/Lib/distutils/command/dist.py
index 0f9e30b..76332b2 100644
--- a/Lib/distutils/command/dist.py
+++ b/Lib/distutils/command/dist.py
@@ -131,6 +131,8 @@
 
 class Dist (Command):
 
+    description = "create a source distribution (tarball, zip file, etc.)"
+
     options = [('formats=', None,
                 "formats for source distribution (tar, ztar, gztar, or zip)"),
                ('manifest=', 'm',
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index 6f5d671..0e5b01c 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -8,13 +8,14 @@
 
 import sys, os, string
 from types import *
-from distutils import sysconfig
 from distutils.core import Command
 from distutils.util import write_file
 
 
 class Install (Command):
 
+    description = "install everything from build directory"
+
     options = [('prefix=', None, "installation prefix"),
                ('exec-prefix=', None,
                 "prefix for platform-specific files"),
@@ -246,6 +247,8 @@
            then replace it with the current installation prefix and
            return the "relocated" installation directory."""
 
+        from distutils import sysconfig
+
         if use_exec:
             sys_prefix = os.path.normpath (sys.exec_prefix)
             my_prefix = self.exec_prefix
diff --git a/Lib/distutils/command/install_ext.py b/Lib/distutils/command/install_ext.py
index b5673d2..599a37e 100644
--- a/Lib/distutils/command/install_ext.py
+++ b/Lib/distutils/command/install_ext.py
@@ -11,6 +11,8 @@
 
 class InstallExt (Command):
 
+    description = "install C/C++ extension modules"
+    
     options = [('install-dir=', 'd', "directory to install to"),
                ('build-dir=','b', "build directory (where to install from)"),
               ]
diff --git a/Lib/distutils/command/install_lib.py b/Lib/distutils/command/install_lib.py
index 50939a3..2e8a670 100644
--- a/Lib/distutils/command/install_lib.py
+++ b/Lib/distutils/command/install_lib.py
@@ -8,6 +8,8 @@
 
 class InstallPy (Command):
 
+    description = "install pure Python modules"
+
     options = [('install-dir=', 'd', "directory to install to"),
                ('build-dir=','b', "build directory (where to install from)"),
                ('compile', 'c', "compile .py to .pyc"),
diff --git a/Lib/distutils/command/install_py.py b/Lib/distutils/command/install_py.py
index 50939a3..2e8a670 100644
--- a/Lib/distutils/command/install_py.py
+++ b/Lib/distutils/command/install_py.py
@@ -8,6 +8,8 @@
 
 class InstallPy (Command):
 
+    description = "install pure Python modules"
+
     options = [('install-dir=', 'd', "directory to install to"),
                ('build-dir=','b', "build directory (where to install from)"),
                ('compile', 'c', "compile .py to .pyc"),
