Index: driver/cc1.cc
===================================================================
--- driver/cc1.cc	(revision 1a69a908039a3c69a0d43b7089553d900c60df5b)
+++ driver/cc1.cc	(revision 49d312845c1cb50f3312373298435bda74cd971a)
@@ -335,4 +335,12 @@
 	#endif // __DEBUG_H__
 
+	enum {
+		Color_Auto   = 0,
+		Color_Always = 1,
+		Color_Never  = 2,
+	} color_arg = Color_Auto;
+
+	const char * color_names[3] = { "--colors=auto", "--colors=always", "--colors=never" };
+
 	// process all the arguments
 
@@ -341,4 +349,13 @@
 		if ( prefix( arg, "-" ) ) {
 			// strip inappropriate flags
+
+			if ( prefix( arg, "-fdiagnostics-color=" ) ) {
+				string choice = arg.substr(20);
+				     if(choice == "always") color_arg = Color_Always;
+				else if(choice == "never" ) color_arg = Color_Never;
+				else if(choice == "auto"  ) color_arg = Color_Auto;
+			} else if ( arg == "-fno-diagnostics-color" ) {
+				color_arg = Color_Auto;
+			}
 
 			if ( arg == "-quiet" || arg == "-version" || arg == "-fpreprocessed" ||
@@ -440,4 +457,7 @@
 			cargs[ncargs++] = cfa_cpp_out.c_str();
 		} // if
+
+		cargs[ncargs++] = color_names[color_arg];
+
 		cargs[ncargs] = nullptr;						// terminate argument list
 
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 1a69a908039a3c69a0d43b7089553d900c60df5b)
+++ src/main.cc	(revision 49d312845c1cb50f3312373298435bda74cd971a)
@@ -431,20 +431,20 @@
 
 static const char * description[] = {
-	"Use color in diagnostics. WHEN is ‘never’, ‘always’, or ‘auto’.",// -c
-	"wait for gdb to attach",									// -g
-	"print help message",								// -h
-	"generate libcfa.c",								// -l
-	"generate line marks",								// -L
-	"do not replace main",								// -m
-	"do not generate line marks",						// -N
-	"do not read prelude",								// -n
+	"diagnostic color: never, always, or auto.",          // -c
+	"wait for gdb to attach",                             // -g
+	"print help message",                                 // -h
+	"generate libcfa.c",                                  // -l
+	"generate line marks",                                // -L
+	"do not replace main",                                // -m
+	"do not generate line marks",                         // -N
+	"do not read prelude",                                // -n
 	"generate prototypes for prelude functions",		// -p
-	"print",											// -P
+	"print",                                              // -P
 	"<directory> prelude directory for debug/nodebug",	// no flag
 	"<option-list> enable profiling information:\n          counters,heap,time,all,none", // -S
-	"building cfa standard lib",									// -t
-	"",													// -w
-	"",													// -W
-	"",													// -D
+	"building cfa standard lib",                          // -t
+	"",                                                   // -w
+	"",                                                   // -W
+	"",                                                   // -D
 }; // description
 
