diff --git a/Lib/distutils/command/install_lib.py b/Lib/distutils/command/install_lib.py
index 22ab71e..f147af4 100644
--- a/Lib/distutils/command/install_lib.py
+++ b/Lib/distutils/command/install_lib.py
@@ -2,19 +2,25 @@
 
 __rcsid__ = "$Id$"
 
-import sys
+import sys, string
 from distutils.core import Command
 from distutils.util import copy_tree
 
 class InstallPy (Command):
 
     options = [('dir=', 'd', "directory to install to"),
-               ('build-dir=' 'b', "build directory (where to install from)")]
+               ('build-dir=' 'b', "build directory (where to install from)"),
+               ('compile', 'c', "compile .py to .pyc"),
+               ('optimize', 'o', "compile .py to .pyo (optimized)"),
+              ]
+               
 
     def set_default_options (self):
         # let the 'install' command dictate our installation directory
         self.dir = None
         self.build_dir = None
+        self.compile = 1
+        self.optimize = 1
 
     def set_final_options (self):
         # If we don't have a 'dir' value, we'll have to ask the 'install'
@@ -25,7 +31,10 @@
 
         self.set_undefined_options ('install',
                                     ('build_lib', 'build_dir'),
-                                    ('install_site_lib', 'dir'))
+                                    ('install_site_lib', 'dir'),
+                                    ('compile_py', 'compile'),
+                                    ('optimize_py', 'optimize'))
+
 
     def run (self):
 
@@ -33,8 +42,28 @@
 
         # Dump entire contents of the build directory to the installation
         # directory (that's the beauty of having a build directory!)
-        self.copy_tree (self.build_dir, self.dir)
+        outfiles = self.copy_tree (self.build_dir, self.dir)
                    
+        # (Optionally) compile .py to .pyc
+        # XXX hey! we can't control whether we optimize or not; that's up
+        # to the invocation of the current Python interpreter (at least
+        # according to the py_compile docs).  That sucks.
+
+        if self.compile:
+            from py_compile import compile
+
+            for f in outfiles:
+                # XXX can't assume this filename mapping!
+                out_fn = string.replace (f, '.py', '.pyc')
+                
+                self.make_file (f, out_fn, compile, (f,),
+                                "compiling %s -> %s" % (f, out_fn),
+                                "compilation of %s skipped" % f)
+
+        # XXX ignore self.optimize for now, since we don't really know if
+        # we're compiling optimally or not, and couldn't pick what to do
+        # even if we did know.  ;-(
+
     # run ()
 
 # class InstallPy
