diff --git a/Lib/distutils/command/__init__.py b/Lib/distutils/command/__init__.py
index cd7753f..229c8a3 100644
--- a/Lib/distutils/command/__init__.py
+++ b/Lib/distutils/command/__init__.py
@@ -9,6 +9,7 @@
            'build_py',
            'build_ext',
            'build_clib',
+           'build_scripts',
            'install',
            'install_lib',
            'install_scripts',
diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index aab0d6f..96d41d5 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -24,6 +24,8 @@
         ('build-lib=', None,
          "build directory for all distribution (defaults to either " +
          "build-purelib or build-platlib"),
+        ('build-scripts=', None,
+         "build directory for scripts"),
         ('build-temp=', 't',
          "temporary build directory"),
         ('compiler=', 'c',
@@ -42,6 +44,7 @@
         self.build_platlib = None
         self.build_lib = None
         self.build_temp = None
+        self.build_scripts = None
         self.compiler = None
         self.debug = None
         self.force = 0
@@ -76,6 +79,8 @@
         if self.build_temp is None:
             self.build_temp = os.path.join (self.build_base,
                                             'temp.' + self.plat)
+        if self.build_scripts is None:
+            self.build_scripts = os.path.join (self.build_base, 'scripts')
     # finalize_options ()
 
 
@@ -100,4 +105,7 @@
         if self.distribution.has_ext_modules():
             self.run_peer ('build_ext')
 
+        if self.distribution.scripts:
+            self.run_peer ('build_scripts')
+
 # class build
diff --git a/Lib/distutils/command/install_data.py b/Lib/distutils/command/install_data.py
index fd9836b..65d188f 100644
--- a/Lib/distutils/command/install_data.py
+++ b/Lib/distutils/command/install_data.py
@@ -7,17 +7,52 @@
 
 __revision__ = "$Id$"
 
-from distutils.cmd import install_misc
+import os
+from types import StringType
+from distutils.core import Command
 
-class install_data (install_misc):
+class install_data (Command):
 
     description = "install data files"
 
+    user_options = [
+        ('install-dir=', 'd',
+         "directory to install the files to"),
+        ('root=', None,
+         "install everything relative to this alternate root directory"),
+        ]
+
+    def initialize_options (self):
+        self.install_dir = None
+        self.outfiles = None
+        self.root = None
+        self.data_files = self.distribution.data_files
+
     def finalize_options (self):
-        self._install_dir_from('install_data')
+        self.set_undefined_options('install',
+	                           ('install_data', 'install_dir'),
+				   ('root', 'root'),
+				  )
 
     def run (self):
-        self._copy_files(self.distribution.data_files)
+        self.mkpath(self.install_dir)
+        for f in self.data_files:
+            if type(f) == StringType:
+                # its a simple file, so copy it
+                self.copy_file(f, self.install_dir)
+            else:
+                # its a tuple with path to install to and a list of files
+                dir = f[0]
+                if not os.path.isabs(dir):
+                    dir = os.path.join(self.install_dir, dir)
+                elif self.root:
+                    dir = os.path.join(self.root, dir[1:])
+                self.mkpath(dir)
+                for data in f[1]:
+                    self.copy_file(data, dir)
 
     def get_inputs (self):
-        return self.distribution.data_files or []
+        return self.data_files or []
+
+    def get_outputs (self):
+        return self.outfiles
diff --git a/Lib/distutils/command/install_scripts.py b/Lib/distutils/command/install_scripts.py
index 43e5fc1..9b78326 100644
--- a/Lib/distutils/command/install_scripts.py
+++ b/Lib/distutils/command/install_scripts.py
@@ -8,23 +8,39 @@
 __revision__ = "$Id$"
 
 import os
-from distutils.cmd import install_misc
+from distutils.core import Command
 from stat import ST_MODE
 
-class install_scripts(install_misc):
+class install_scripts(Command):
 
     description = "install scripts"
 
+    user_options = [
+        ('install-dir=', 'd', "directory to install to"),
+        ('build-dir=','b', "build directory (where to install from)"),
+        ('skip-build', None, "skip the build steps"),
+    ]
+
+    def initialize_options (self):
+        self.install_dir = None
+        self.build_dir = None
+        self.skip_build = None
+
     def finalize_options (self):
-        self._install_dir_from('install_scripts')
+        self.set_undefined_options('build', ('build_scripts', 'build_dir'))
+        self.set_undefined_options ('install',
+                                    ('install_scripts', 'install_dir'),
+                                    ('skip_build', 'skip_build'),
+                                   )
 
     def run (self):
-        self._copy_files(self.distribution.scripts)
+        if not self.skip_build:
+            self.run_peer('build_scripts')
+        self.outfiles = self.copy_tree (self.build_dir, self.install_dir)
         if os.name == 'posix':
             # Set the executable bits (owner, group, and world) on
             # all the scripts we just installed.
-            files = self.get_outputs()
-            for file in files:
+            for file in self.get_outputs():
                 if self.dry_run:
                     self.announce("changing mode of %s" % file)
                 else:
@@ -35,4 +51,7 @@
     def get_inputs (self):
         return self.distribution.scripts or []
 
+    def get_outputs(self):
+        return self.outfiles or []
+
 # class install_scripts
