diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py
index 90fbf082413c62dd88cf803b2eff7465c93cec25..35e3b898ec96b1fe99177a6a5a7cca3e2f40081c 100644
--- a/lib/spack/spack/compiler.py
+++ b/lib/spack/spack/compiler.py
@@ -190,6 +190,12 @@ def check(key):
             except ProcessError, e:
                 tty.debug("Couldn't get version for compiler %s" % full_path, e)
                 return None
+            except Exception, e:
+                # Catching "Exception" here is fine because it just
+                # means something went wrong running a candidate executable.
+                tty.debug("Error while executing candidate compiler %s" % full_path,
+                          "%s: %s" %(e.__class__.__name__, e))
+                return None
 
         successful = [key for key in parmap(check, checks) if key is not None]
         return dict(((v, p, s), path) for v, p, s, path in successful)