diff --git a/mpcdf_common.py b/mpcdf_common.py
index 555daf3ae19ef991663531dd94f9cb9fc2e0483f..ce3005f37f0f1975dc268f11f3c3eddf677ff851 100644
--- a/mpcdf_common.py
+++ b/mpcdf_common.py
@@ -306,6 +306,12 @@ def get_microarchitecture(project):
         raise Exception("Unknown micro-architecture '{0}'".format(microarch))
 
 
+def package_sort_key(string):
+    name, version = string.split("_", 1)
+    version = version.split("_")
+    return (name,) + tuple(map(int, version))
+
+
 def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_repos=None):
     from itertools import product
     import sys
@@ -355,13 +361,8 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r
     default_mpis = try_get_attribute(None, "default_mpi")
     default_cudas = try_get_attribute(None, "default_cuda")
 
-    def sort_key(string):
-        name, version = string.split("_", 1)
-        version = version.split("_")
-        return (name,) + tuple(map(int, version))
-
-    latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=sort_key)[-1]
-    latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=sort_key)[-1]
+    latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=package_sort_key)[-1]
+    latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=package_sort_key)[-1]
 
     def enable(name):
         if any(filtered_repo in name for filtered_repo in filter_repos):
diff --git a/mpcdf_refresh_aggregates.py b/mpcdf_refresh_aggregates.py
index f95dc3123c7bdee055ae3c0a30b14573d61323d1..22e2594890e57dab890555f6f86a2d4227800113 100644
--- a/mpcdf_refresh_aggregates.py
+++ b/mpcdf_refresh_aggregates.py
@@ -94,6 +94,12 @@ def do_mpcdf_refresh_aggregates(self, subcmd, opts, *args):
             values = mpcdf_common.get_attribute_values(apiurl, project, None, attribute)
             macros[target].append("%available_{0} {1}".format(name, ",".join(sorted(values))))
 
+        all_compilers = mpcdf_common.get_attribute_values(apiurl, project, None, "MPCDF:compiler_modules")
+        latest_intel = sorted((c for c in all_compilers if c.startswith("intel")), key=mpcdf_common.package_sort_key)[-1]
+        latest_gcc = sorted((c for c in all_compilers if c.startswith("gcc")), key=mpcdf_common.package_sort_key)[-1]
+        macros[target].append("%latest_intel " + latest_intel)
+        macros[target].append("%latest_gcc " + latest_gcc)
+
         for repo in osc.core.get_repositories_of_project(apiurl, project):
             aggregatename = "zz_aggregate_" + project.replace(":", "-") + "_" + repo
             refresh_aggregate(aggregatename, project, repo, target)