diff --git a/CMakeLists.txt b/CMakeLists.txt
index da4c3923be19be2a05909bbb58a33596bb1f1d79..3fff10c68cddb881d3f55683172b1aac3f96d19e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -986,6 +986,7 @@ set(GMSH_EXTERNAL_LIBRARIES ${EXTERNAL_LIBRARIES} CACHE
 
 # group sources for easier navigation in IDEs
 foreach(DIR ${GMSH_DIRS})
+  string(REGEX REPLACE "\\+" "\\\\+" DIR ${DIR})
   source_group(${DIR} REGULAR_EXPRESSION ${DIR}/.*)
 endforeach(DIR)