diff --git a/.gitlab-ci/default.yml b/.gitlab-ci/default.yml
index 768c56edaafab4cfc65fc7615f6eaaab0a434da6..5b2a237f19ba3b94c2682a8ce167115438b27f45 100644
--- a/.gitlab-ci/default.yml
+++ b/.gitlab-ci/default.yml
@@ -110,10 +110,12 @@ select tests:
 compile cpp:
   stage: build
   script:
-    # remove cached Python dune-env if existing (not needed for C++) (Dune 2.9)
+    # restore Python virtual env from cache (job:configure artifacts) (Dune 2.9)
+    # shouldn't be needed to compile C++ but currently is (https://gitlab.dune-project.org/core/dune-common/-/issues/279)
     - |
       if [ -d "build-cmake/dune-env" ]; then
-        rm -r build-cmake/dune-env
+        rm -r /dune/modules/dune-common/build-cmake/dune-env
+        mv build-cmake/dune-env /dune/modules/dune-common/build-cmake/dune-env
       fi
     - |
       pushd build-cmake