diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf8543ec7204ade115e84ec1a2f306111beaa30b..ef615b3fee17ebe6288d2e3a2ef1270875d602e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,6 +98,16 @@ foreach(p
   endif()
 endforeach()
 
+# Some configure checks depend upon the deployment target. Clear checks when
+# the deployment target changes.
+if (APPLE)
+  if (NOT CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL KWSYS_LAST_OSX_DEPLOYMENT_TARGET)
+    unset(KWSYS_CXX_HAS_UTIMENSAT CACHE)
+  endif ()
+  set(KWSYS_LAST_OSX_DEPLOYMENT_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}"
+    CACHE INTERNAL "remember the last deployment target to trigger configure rechecks")
+endif ()
+
 #-----------------------------------------------------------------------------
 # If a namespace is not specified, use "kwsys" and enable testing.
 # This should be the case only when kwsys is not included inside
diff --git a/Terminal.c b/Terminal.c
index 9409d1b7642f99c452b297b6bd2f3683ebd43764..57a68bfdbfdb672198bba4fc605b19ce995d6660 100644
--- a/Terminal.c
+++ b/Terminal.c
@@ -167,12 +167,19 @@ static int kwsysTerminalStreamIsVT100(FILE* stream, int default_vt100,
   /* Force color according to http://bixense.com/clicolors/ convention.  */
   {
     const char* clicolor_force = getenv("CLICOLOR_FORCE");
-    if (clicolor_force && *clicolor_force &&
-        strcmp(clicolor_force, "0") != 0) {
+    if (clicolor_force && strcmp(clicolor_force, "0") != 0) {
       return 1;
     }
   }
 
+  /* Disable color according to http://bixense.com/clicolors/ convention. */
+  {
+    const char* clicolor = getenv("CLICOLOR");
+    if (clicolor && strcmp(clicolor, "0") == 0) {
+      return 0;
+    }
+  }
+
   /* GNU make 4.1+ may tell us that its output is destined for a TTY. */
   {
     const char* termout = getenv("MAKE_TERMOUT");