diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 4bccecf8607b097d975f308d040539cd7ef4c9a3..0cbcf8f56e82112708291bec354d966840dfc845 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -437,6 +437,7 @@ def edit(self, spec, prefix):
 
             mkf.write('CC = {0.compiler.cc}\n'.format(self))
             if '%intel' in self.spec:
+                intel_bin_dir = ancestor(self.compiler.cc)
                 # CPP is a commented command in Intel arch of CP2K
                 # This is the hack through which cp2k developers avoid doing :
                 #
@@ -444,7 +445,7 @@ def edit(self, spec, prefix):
                 #
                 # and use `-fpp` instead
                 mkf.write('CPP = # {0.compiler.cc} -P\n\n'.format(self))
-                mkf.write('AR = xiar -r\n\n')
+                mkf.write('AR = {0}/xiar -r\n\n'.format(intel_bin_dir))
             else:
                 mkf.write('CPP = # {0.compiler.cc} -E\n\n'.format(self))
                 mkf.write('AR = ar -r\n\n')