diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 28e29cbda7bf49a6a71665a5fb1d71121795b848..20bdd0d620f29db748106cb24dd78b83408cf2ec 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -159,7 +159,7 @@ coverage: # special manual job to run after normal pipeline finished
     - ctest -j4 -V > test.log 
     - cmake --build . --target coverage
     - tar czf coverage-report.tar.gz coverage-report
-  coverage: '/functions.*\s+(\d+\%)\s/'
+  coverage: '/^.*functions\.+:\s(.*\%)\s/'
   artifacts:
     expire_in: 1 year
     paths:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cf20efb466d9acf9436a98264ae2d9834db9d024..3c90dae238aa7e57e02d1498681450af76cf6fd5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -96,7 +96,7 @@ if (CMAKE_BUILD_TYPE STREQUAL Coverage)
   # remove uninteresting entries
   add_custom_command (
     OUTPUT coverage.info
-    COMMAND ${LCOV_BIN_DIR}/lcov --remove raw-coverage.info "*/usr/*" --output-file coverage2.info
+    COMMAND ${LCOV_BIN_DIR}/lcov -q --remove raw-coverage.info "*/usr/*" --output-file coverage2.info
     COMMAND ${LCOV_BIN_DIR}/lcov --remove coverage2.info "*/ThirdParty/*" --output-file coverage.info
     COMMAND ${CMAKE_COMMAND} -E remove coverage2.info
     DEPENDS raw-coverage.info