diff --git a/.dd4hep-ci.d/compile_and_test.sh b/.dd4hep-ci.d/compile_and_test.sh
index 44de5e2bce408d14193bdfd470a9e917fe270849..45f3dcf6fbecd70ea70243dbb3aa54c6188f4706 100755
--- a/.dd4hep-ci.d/compile_and_test.sh
+++ b/.dd4hep-ci.d/compile_and_test.sh
@@ -5,7 +5,7 @@ source /DD4hep/.dd4hep-ci.d/init_x86_64.sh
 cd /DD4hep
 mkdir build
 cd build
-cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib64/Geant4-10.3.3 -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always -Werror" .. && \
+cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib64/Geant4-10.4.0 -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always -Werror" .. && \
 ninja && \
 ninja install && \
 . ../bin/thisdd4hep.sh && \
diff --git a/.dd4hep-ci.d/coverity_scan.sh b/.dd4hep-ci.d/coverity_scan.sh
index b571828b16f7ed700a07206ca17bfbb3182b12f1..60ef6858d49d57ad018958d02dd634b2c35e18b5 100755
--- a/.dd4hep-ci.d/coverity_scan.sh
+++ b/.dd4hep-ci.d/coverity_scan.sh
@@ -7,7 +7,7 @@ source /Package/.dd4hep-ci.d/init_x86_64.sh
 cd /Package
 mkdir build
 cd build
-cmake -D DD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON  -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.3.3 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always" .. && \
+cmake -D DD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON  -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.4.0 -D DD4HEP_USE_CXX11=ON -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always" .. && \
 export PATH=/cov-analysis-linux64/bin:$PATH && \
 cov-build --dir cov-int make -j4 && \
 tar czvf myproject.tgz cov-int
diff --git a/.dd4hep-ci.d/init_x86_64.sh b/.dd4hep-ci.d/init_x86_64.sh
index ea534896dd9c16ee691ac19886df78c56683c9e3..5bf64988b633e70d388d9fa0bf7ead5b66d74ac0 100644
--- a/.dd4hep-ci.d/init_x86_64.sh
+++ b/.dd4hep-ci.d/init_x86_64.sh
@@ -103,7 +103,7 @@ export LD_LIBRARY_PATH="$XercesC_HOME/lib:$LD_LIBRARY_PATH"
 #--------------------------------------------------------------------------------
 #Determine which Geant4 version to use
 if [ -z ${GEANT4_VERSION} ]; then
-GEANT4_VERSION="10.03.p03"
+GEANT4_VERSION="10.04"
 fi
 
 export G4INSTALL=${CLICREPO}/software/Geant4/${GEANT4_VERSION}/${BUILD_FLAVOUR}
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index eb6db8fdb39710614f54b5cfa19f57bf139f52f3..7955a1fcde879964bbc7c38e12f982a95de2bf4a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,6 +34,7 @@ slc6-ggc7-Geant10.3:
   image: clicdp/slc6-base
   script:
     - export COMPILER_TYPE="gcc"
+    - export GEANT4_VERSION="10.03.p03"
     - source .dd4hep-ci.d/init_x86_64.sh
     - mkdir build
     - cd build
@@ -50,7 +51,7 @@ slc6-ggc7-Geant10.3:
     - ninja install
     - ctest --output-on-failure
 
-slc6-gcc7-Geant10.3-XERCESC:
+slc6-gcc7-Geant10.4-XERCESC:
   stage: build
   tags:
     - docker
@@ -75,17 +76,18 @@ slc6-gcc7-Geant10.3-XERCESC:
     - ctest --output-on-failure
 
 
-slc6-llvm5-Geant10.3:
+slc6-llvm5-Geant10.4:
   stage: build
   tags:
     - docker
   image: clicdp/slc6-base
   script:
     - export COMPILER_TYPE="llvm"
+    - export GEANT4_VERSION="10.04"
     - source .dd4hep-ci.d/init_x86_64.sh
     - mkdir build
     - cd build
-    - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib64/Geant4-10.3.3 -DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS ..
+    - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib64/Geant4-10.4.0 -DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS ..
     - ninja
     - ninja install
     - . ../bin/thisdd4hep.sh
@@ -105,6 +107,7 @@ slc6-llvm5-Geant10.3-XERCESC:
   image: clicdp/slc6-base
   script:
     - export COMPILER_TYPE="llvm"
+    - export GEANT4_VERSION="10.03.p03"
     - source .dd4hep-ci.d/init_x86_64.sh
     - mkdir build
     - cd build
@@ -121,11 +124,12 @@ slc6-llvm5-Geant10.3-XERCESC:
     - ninja install
     - ctest --output-on-failure
 
-mac1013-llvm90:
+mac1013-llvm90-Geant10.3:
   stage: build
   tags:
     - mac
   script:
+    - export GEANT4_VERSION="10.03.p03"
     - source .dd4hep-ci.d/init_x86_64.sh
     - mkdir build
     - cd build
@@ -142,15 +146,16 @@ mac1013-llvm90:
     - ninja install
     - ctest --output-on-failure
 
-mac1013-llvm90-XERCESC:
+mac1013-llvm90-Geant10.4-XERCESC:
   stage: build
   tags:
     - mac
   script:
+    - export GEANT4_VERSION="10.04"
     - source .dd4hep-ci.d/init_x86_64.sh
     - mkdir build
     - cd build
-    - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib/Geant4-10.3.3 -DCMAKE_BUILD_TYPE=Release -DDD4HEP_USE_XERCESC=ON -DXERCESC_ROOT_DIR=${XercesC_HOME} -DROOT_DIR=$ROOTSYS ..
+    - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib/Geant4-10.4.0 -DCMAKE_BUILD_TYPE=Release -DDD4HEP_USE_XERCESC=ON -DXERCESC_ROOT_DIR=${XercesC_HOME} -DROOT_DIR=$ROOTSYS ..
     - ninja
     - ninja install
     - . ../bin/thisdd4hep.sh