diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 1d697deeae4903c349ba43aaa7d7a4c73bc6c1ff..5cacd459e99101dc259f9b76a56059b5b446579c 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -164,6 +164,10 @@ if (DARWIN)
   set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlong-branch")
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlong-branch")
+  # NOTE: it's critical that the optimization flag is put in front.
+  # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered.
+  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+  set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
 endif (DARWIN)
 
 
diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt
index 37ad170467aed53a56dc5eade58a6683196085be..6940c0682ff3a84a4295a62fa78c026213410f51 100644
--- a/indra/test/CMakeLists.txt
+++ b/indra/test/CMakeLists.txt
@@ -30,7 +30,6 @@ set(test_SOURCE_FILES
     llbase64_tut.cpp
     llblowfish_tut.cpp
     llbuffer_tut.cpp
-    lldatabase_tut.cpp
     lldate_tut.cpp
     llerror_tut.cpp
     llhost_tut.cpp
@@ -89,6 +88,12 @@ if (NOT WINDOWS)
        )
 endif (NOT WINDOWS)
 
+if (NOT DARWIN)
+  list(APPEND test_SOURCE_FILES
+    lldatabase_tut.cpp
+    )
+endif (NOT DARWIN)
+
 set_source_files_properties(${test_HEADER_FILES}
                             PROPERTIES HEADER_FILE_ONLY TRUE)