diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6f509f464f621c5fe2fcf10f5496e05f823ff58e..fba2a28df2e7df36332c526dc23d569acd371e97 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,6 +80,9 @@ set (CMAKE_CXX_EXTENSIONS OFF)
 # FYI: optimizer flags: -O2 would not trade speed for size, neither O2/3 use fast-math
 # debug: O0, relwithdebinfo: 02, release: O3, minsizerel: Os (all defaults)
 set (CMAKE_CXX_FLAGS "-Wall -pedantic -Wextra -Wno-ignored-qualifiers")
+if (CORSIKA_SCL_CXX)
+  add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
+endif()
 set (DEFAULT_BUILD_TYPE "Release")
 
 # clang produces a lot of unecessary warnings without this:
@@ -126,6 +129,7 @@ endif (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
 #+++++++++++++++++++++++++++++
 # Setup external dependencies.
 #
+###
 include (conan) # self-provided in 'cmake' directory
 #
 # download and build all dependencies
diff --git a/cmake/CorsikaDefines.cmake b/cmake/CorsikaDefines.cmake
index 30b8fe33cf83982d8769696af86092f371ad3747..2019ce2f906f9025e2181a0c9eb624e99f9ca44e 100644
--- a/cmake/CorsikaDefines.cmake
+++ b/cmake/CorsikaDefines.cmake
@@ -14,10 +14,15 @@ endif ()
 #
 if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
     set (CORSIKA_OS_WINDOWS TRUE)
-     set (CORSIKA_OS "Windows")
+    set (CORSIKA_OS "Windows")
 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
     set (CORSIKA_OS_LINUX TRUE)
-     set (CORSIKA_OS "Linux")
+    set (CORSIKA_OS "Linux")
+    # check for RedHat/CentOS compiler from the software collections (scl)
+    string (FIND ${CMAKE_CXX_COMPILER} "/opt/rh/devtoolset-" index)
+    if (${index} EQUAL 0)
+      set (CORSIKA_SCL_CXX TRUE)
+    endif ()
 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
     set (CORSIKA_OS_MAC TRUE)  
     set (CORSIKA_OS "Mac") 
diff --git a/corsika/detail/framework/core/Logging.inl b/corsika/detail/framework/core/Logging.inl
index e99e788b8de6a6eaf2e3965fb10c51049e720058..9abaa163683b4b1a70ce6a22d3cb3070e67d7516 100644
--- a/corsika/detail/framework/core/Logging.inl
+++ b/corsika/detail/framework/core/Logging.inl
@@ -47,7 +47,13 @@ namespace corsika {
     auto logger = spdlog::stdout_color_mt(name);
 
     // set the default C8 format
+#if (!defined(_GLIBCXX_USE_CXX11_ABI) || _GLIBCXX_USE_CXX11_ABI == 1)
     logger->set_pattern(logging::default_pattern);
+#else
+    // special case: gcc from the software collections devtoolset
+    std::string dp(default_pattern);
+    logger->set_pattern(dp);
+#endif
 
     // if defaultlog is True, we set this as the default spdlog logger.
     if (defaultlog) { spdlog::set_default_logger(logger); }