diff --git a/Terminal.c b/Terminal.c
index d13f79ad71ec950a793fca7018f419b06398e8aa..a8abb6cc680272638d27a33de29ddd0a33d024b3 100644
--- a/Terminal.c
+++ b/Terminal.c
@@ -184,14 +184,25 @@ static const char* kwsysTerminalVT100Names[] =
 static int kwsysTerminalStreamIsVT100(FILE* stream, int default_vt100,
                                       int default_tty)
 {
+  /* 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)
+    {
+    return 1;
+    }
+  }
+
   /* If running inside emacs the terminal is not VT100.  Some emacs
      seem to claim the TERM is xterm even though they do not support
      VT100 escapes.  */
+  {
   const char* emacs = getenv("EMACS");
   if(emacs && *emacs == 't')
     {
     return 0;
     }
+  }
 
   /* Check for a valid terminal.  */
   if(!default_vt100)