diff --git a/CMakeLists.txt b/CMakeLists.txt
index bb3681f42076dec0c6b13ae7594854eb26eedeb0..2c72370a010868e6d5b72467c01e05c215367f56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,9 @@ if("${PUGS_SHORT_VERSION}" STREQUAL "")
   message(FATAL_ERROR "Unable to compute short version from PUGS_VERSION=${PUGS_VERSION}")
 endif()
 
+
+set(CMAKE_CONFIGURATION_TYPES "Release;Debug;Coverage" CACHE STRING INTERNAL FORCE )
+
 # set project version as PUGS_SHORT_VERSION
 project (Pugs VERSION ${PUGS_SHORT_VERSION})
 
@@ -34,16 +37,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 set(PUGS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
 set(PUGS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
 
-# Change RelWithDebInfo to compile assertions
-SET("CMAKE_CXX_FLAGS_RELWITHDEBINFO"
-   "-g -O2"
-  CACHE STRING "Flags used by the compiler during release builds with debug info and assertions"
-  FORCE )
-SET("CMAKE_C_FLAGS_RELWITHDEBINFO"
-   "-g -O2"
-  CACHE STRING "Flags used by the compiler during release builds with debug info and assertions"
-  FORCE )
-
 # Add new build types
 set(CMAKE_CXX_FLAGS_COVERAGE
   "-g -O0 --coverage"
@@ -68,16 +61,16 @@ mark_as_advanced(
   CMAKE_SHARED_LINKER_FLAGS_COVERAGE )
 
 if(CMAKE_BUILD_TYPE)
-  string(REGEX MATCH "(Debug|Release|RelWithDebInfo|MinSizeRel|Coverage)" VALID_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
+  string(REGEX MATCH "^(Release|Debug|Coverage)$" VALID_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
   if(NOT VALID_BUILD_TYPE)
     message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE: '${CMAKE_BUILD_TYPE}'")
   endif()
 endif()
 
-# Default build type is RelWIthDebInfo
+# Default build type is Release
 if(NOT CMAKE_BUILD_TYPE)
-  set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
-      "Choose the type of build: Debug Release RelWithDebInfo MinSizeRel Coverage."
+  set(CMAKE_BUILD_TYPE "Release" CACHE STRING
+      "Choose the type of build: Release Debug Coverage."
       FORCE)
 endif()
 
@@ -327,12 +320,10 @@ endif()
 # Compiler flags
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PUGS_CXX_FLAGS}")
 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${PUGS_CXX_FLAGS}")
-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${PUGS_CXX_FLAGS}")
 
 # Add debug mode for Standard C++ library (not for AppleClang since it is broken)
 if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
   set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1")
-  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG=1")
 endif()
 
 #------------------------------------------------------