diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py
index b53c17494c95bcca9d226b3bd17556ebb069d05f..030dc449fc8582f225ad2b0105762a647bd0711b 100644
--- a/lib/spack/spack/compiler.py
+++ b/lib/spack/spack/compiler.py
@@ -230,6 +230,10 @@ def check(key):
                 return None
 
         successful = [key for key in parmap(check, checks) if key is not None]
+        # The 'successful' list is ordered like the input paths.
+        # Reverse it here so that the dict creation (last insert wins)
+        # does not spoil the intented precedence.
+        successful.reverse()
         return dict(((v, p, s), path) for v, p, s, path in successful)
 
     @classmethod