diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 43b1fcd9c8a734cf00a4abbee025917aa2e9c875..0b6bc4ce6cd8a2181b66809034ddf3fd43872013 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -836,10 +836,7 @@ def do_install(self, **kwargs):
                     self.install(self.spec, self.prefix)
 
                 # Ensure that something was actually installed.
-                if not os.listdir(self.prefix):
-                    raise InstallError(
-                        "Install failed for %s.  Nothing was installed!"
-                        % self.name)
+                self._sanity_check_install()
 
                 # On successful install, remove the stage.
                 if not keep_stage:
@@ -884,6 +881,15 @@ def do_install(self, **kwargs):
         spack.hooks.post_install(self)
 
 
+
+    def _sanity_check_install(self):
+        installed = set(os.listdir(self.prefix))
+        installed.difference_update(spack.install_layout.hidden_file_paths)
+        if not installed:
+            raise InstallError(
+                "Install failed for %s.  Nothing was installed!" % self.name)
+
+
     def do_install_dependencies(self, **kwargs):
         # Pass along paths of dependencies here
         for dep in self.spec.dependencies.values():