diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py
index da7088640f7eb9ca71f5326a649f94541a5691cc..6697e00e40e3797ac5a88b1b5b7be64fe0589398 100644
--- a/lib/spack/spack/__init__.py
+++ b/lib/spack/spack/__init__.py
@@ -26,7 +26,7 @@
 import tempfile
 from llnl.util.filesystem import *
 
-# This lives in $prefix/lib/spac/spack/__file__
+# This lives in $prefix/lib/spack/spack/__file__
 prefix = ancestor(__file__, 4)
 
 # The spack script itself
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py
index 2374d02feba0763dfd1ec8b9a1f172df1e6eb62d..2c2deb28033dc2c848473a05b23a7185e70890bf 100644
--- a/lib/spack/spack/cmd/install.py
+++ b/lib/spack/spack/cmd/install.py
@@ -43,6 +43,9 @@ def setup_parser(subparser):
     subparser.add_argument(
         '-n', '--no-checksum', action='store_true', dest='no_checksum',
         help="Do not check packages against checksum")
+    subparser.add_argument(
+        '--fake', action='store_true', dest='fake',
+        help="Fake install.  Just remove the prefix and touch a fake file in it.")
     subparser.add_argument(
         'packages', nargs=argparse.REMAINDER, help="specs of packages to install")
 
@@ -59,4 +62,5 @@ def install(parser, args):
         package = spack.db.get(spec)
         package.do_install(keep_prefix=args.keep_prefix,
                            keep_stage=args.keep_stage,
-                           ignore_deps=args.ignore_deps)
+                           ignore_deps=args.ignore_deps,
+                           fake=args.fake)
diff --git a/lib/spack/spack/hooks/__init__.py b/lib/spack/spack/hooks/__init__.py
index 4f0d574e49c6fbd38692c5ad721762cbe75cfc9a..98b7f2323f2a0d9fdd3714c10b5589aa3070a01e 100644
--- a/lib/spack/spack/hooks/__init__.py
+++ b/lib/spack/spack/hooks/__init__.py
@@ -47,8 +47,11 @@
 def all_hook_modules():
     modules = []
     for name in list_modules(spack.hooks_path):
+        mod_name = __name__ + '.' + name
         path = join_path(spack.hooks_path, name) + ".py"
-        modules.append(imp.load_source('spack.hooks', path))
+        mod = imp.load_source(mod_name, path)
+        modules.append(mod)
+
     return modules
 
 
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index bb6180c52168737a5ecd3c7362f248db1613f7ee..9c67b0bb51cf37555c65bfb5ecd9c8b11cda3883 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -709,9 +709,10 @@ def do_install(self, **kwargs):
            Package implementations should override install().
         """
         # whether to keep the prefix on failure.  Default is to destroy it.
-        keep_prefix = kwargs.get('keep_prefix', False)
-        keep_stage  = kwargs.get('keep_stage', False)
-        ignore_deps = kwargs.get('ignore_deps', False)
+        keep_prefix  = kwargs.get('keep_prefix', False)
+        keep_stage   = kwargs.get('keep_stage', False)
+        ignore_deps  = kwargs.get('ignore_deps', False)
+        fake_install = kwargs.get('fake', False)
 
         if not self.spec.concrete:
             raise ValueError("Can only install concrete packages.")
@@ -725,7 +726,8 @@ def do_install(self, **kwargs):
         if not ignore_deps:
             self.do_install_dependencies()
 
-        self.do_patch()
+        if not fake_install:
+            self.do_patch()
 
         # Fork a child process to do the build.  This allows each
         # package authors to have full control over their environment,
@@ -750,8 +752,14 @@ def do_install(self, **kwargs):
                 build_env.set_build_environment_variables(self)
                 build_env.set_module_variables_for_package(self)
 
-                # Subclasses implement install() to do the real work.
-                self.install(self.spec, self.prefix)
+                if fake_install:
+                    mkdirp(self.prefix.bin)
+                    touch(join_path(self.prefix.bin, 'fake'))
+                    mkdirp(self.prefix.lib)
+                    mkdirp(self.prefix.man1)
+                else:
+                    # Subclasses implement install() to do the real work.
+                    self.install(self.spec, self.prefix)
 
                 # Ensure that something was actually installed.
                 if not os.listdir(self.prefix):