diff --git a/spack_repo/packages/dwd-icon-tools/package.py b/spack_repo/packages/dwd-icon-tools/package.py
index b0f92bb63aa5bc66e9082073d0b21eacea8552e4..cf47145238de12eb27492613ce441ed0c73b4346 100644
--- a/spack_repo/packages/dwd-icon-tools/package.py
+++ b/spack_repo/packages/dwd-icon-tools/package.py
@@ -45,7 +45,7 @@ class DwdIconTools(Package):
 
     depends_on("netcdf-c")
     depends_on("netcdf-fortran")
-    depends_on("eccodes")
+    depends_on("eccodes+tools")
     depends_on("libxml2")
 
     #
diff --git a/spack_repo/packages/icon-nwp/package.py b/spack_repo/packages/icon-nwp/package.py
index 49510b398da8c938599fb4111e3160cf2512b88c..695a80c6bb3127e874bdf34183a3f86ddd38f562 100644
--- a/spack_repo/packages/icon-nwp/package.py
+++ b/spack_repo/packages/icon-nwp/package.py
@@ -57,7 +57,7 @@ class IconNwp(Package):
     depends_on("mpi")
     depends_on("netcdf-c")
     depends_on("netcdf-fortran")
-    depends_on("eccodes+fortran")
+    depends_on("eccodes+fortran+tools")
     depends_on("libxml2")
 
     # If you using inwp_psp=2 (with non-divergent 3D flow), petsc is necessary
diff --git a/templates/real-from-d2-ana/prepare_date_remote.sh b/templates/real-from-d2-ana/prepare_date_remote.sh
index d78ca5237b09f996c35f3ccb2961725596059388..f2d90b9469567dd6dd8d3cb8ea74211d98729226 100644
--- a/templates/real-from-d2-ana/prepare_date_remote.sh
+++ b/templates/real-from-d2-ana/prepare_date_remote.sh
@@ -16,6 +16,7 @@ if [ "${IC_DATA_IS_LOCAL}" != "True" ]; then
   load_spack "%spack.init%" "%spack.root%" "%spack.url%" "%spack.branch%" "%spack.externals%" "%spack.compiler%" "%spack.disable_local_config%" "%spack.user_cache_path%" "%spack.user_config_path%" "%spack.upstreams%"
 
   # Load icon module
+  spack load --first eccodes
   spack load --first dwd-icon-tools
 
   # Set environment variable for eccodes-dwd definitions: