diff --git a/CMakeLists.txt b/CMakeLists.txt
index 50b1836135e295399ec573ebdd5051ed048cf014..f45d6097b7dba983efdac5bef058bb27b8a5c0b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -204,13 +204,7 @@ endif()
 if(ALGORITHM_DIAGNOSTIC)
     string(APPEND CMAKE_CXX_FLAGS " -DALGORITHM_DIAGNOSTIC=ON")
 endif()
-string(APPEND CMAKE_CXX_FLAGS_DEBUG " -DBA_DEBUG")
-
-# debug optimization
-if(BA_DEBUG_OPTIMIZATION)
-  include(commons/DebugOptimization)
-endif()
-
+string(APPEND CMAKE_CXX_FLAGS_DEBUG " -DBA_DEBUG") # changes behavior of ASSERT
 
 ### Configure source components
 
diff --git a/cmake/BornAgain/Linux.cmake b/cmake/BornAgain/Linux.cmake
index c9814254550f1e5b5221a8d6b6f0aceceadc3c02..52a821bfce8372dc075fd5bf0733224bc86fde15 100644
--- a/cmake/BornAgain/Linux.cmake
+++ b/cmake/BornAgain/Linux.cmake
@@ -11,7 +11,12 @@ else()
 endif()
 
 set(CMAKE_CXX_FLAGS_RELEASE        "-O3")
-set(CMAKE_CXX_FLAGS_DEBUG          "-g")
+set(CMAKE_CXX_FLAGS_DEBUG          "-g3")
+if(GCC)
+  string(APPEND CMAKE_CXX_FLAGS_DEBUG " -Og")
+else()
+  string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O2")
+endif()
 
 string(APPEND CMAKE_CXX_FLAGS " -I${CMAKE_SOURCE_DIR}/Wrap -pipe ${BIT_ENVIRONMENT} -Wall -W -Woverloaded-virtual -Wno-unknown-pragmas -fPIC")
 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
diff --git a/cmake/BornAgain/MacOS.cmake b/cmake/BornAgain/MacOS.cmake
index 2234f14d58a46ea583b318f7f1067b7716ef65b6..4e00087326e599b4f8f735e6cfdaf52d1e7544c1 100644
--- a/cmake/BornAgain/MacOS.cmake
+++ b/cmake/BornAgain/MacOS.cmake
@@ -51,11 +51,8 @@ if(CMAKE_COMPILER_IS_GNUCXX)
     string(APPEND CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS " -flat_namespace -single_module -undefined dynamic_lookup")
 
     # Select flags.
-    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
     set(CMAKE_CXX_FLAGS_RELEASE        "-O2")
-    set(CMAKE_CXX_FLAGS_DEBUG          "-g -O2 -fno-reorder-blocks -fno-inline")
-    set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g3 -fno-inline")
-    set(CMAKE_CXX_FLAGS_PROFILE        "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
+    set(CMAKE_CXX_FLAGS_DEBUG          "-g3 -O2 -fno-reorder-blocks -fno-inline")
 
     #settings for cint
     set(CPPPREP "${CMAKE_CXX_COMPILER} -E -C")
@@ -72,11 +69,8 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang OR ${CMAKE_CXX_COMPILER_ID} STREQ
     string(APPEND CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS " -flat_namespace -single_module -undefined dynamic_lookup")
 
     # Select flags.
-    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
     set(CMAKE_CXX_FLAGS_RELEASE        "-O2")
     set(CMAKE_CXX_FLAGS_DEBUG          "-g -O2 -fno-inline")
-    set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g3 -fno-inline")
-    set(CMAKE_CXX_FLAGS_PROFILE        "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
 
     #settings for cint
     set(CPPPREP "${CMAKE_CXX_COMPILER} -E -C")
diff --git a/cmake/commons/DebugOptimization.cmake b/cmake/commons/DebugOptimization.cmake
deleted file mode 100644
index b579b04c84db94d11dc6894242c7d819489bd1f9..0000000000000000000000000000000000000000
--- a/cmake/commons/DebugOptimization.cmake
+++ /dev/null
@@ -1,23 +0,0 @@
-# DebugOptimization.cmake
-#
-# description: add debug optimization (gcc only)
-#
-# usage: from build directory
-#
-#        cmake .. -DCMAKE_BUILD_TYPE=Debug
-#        ctest (or make check)
-#        cmake --build . --config Debug --target coverage
-#
-# author: Jonathan Fisher
-#         j.fisher@fz-juelich.de, jonathan.m.fisher@gmail.com
-#
-# copyright: 2016 scientific computing group, Forshungszentrum Juelich GmbH
-#
-# license: see LICENSE
-#
-
-if(GCC)
-  string(APPEND CMAKE_CXX_FLAGS " -Og")
-else()
-  message(WARNING "C compiler is not GNU; debug optimization has no effect")
-endif()