Index: driver/cfa.cc
===================================================================
--- driver/cfa.cc	(revision db62eef976cc228c437ea0efc03f901f14e7694e)
+++ driver/cfa.cc	(revision 67bfc50b1e9eeee360c34e3c2c3dd4fca93f06ad)
@@ -10,6 +10,6 @@
 // Created On       : Tue Aug 20 13:44:49 2002
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May 30 18:28:23 2020
-// Update Count     : 433
+// Last Modified On : Thu Aug 13 17:22:02 2020
+// Update Count     : 435
 //
 
@@ -180,26 +180,19 @@
 
 			if ( arg == "-Xlinker" || arg == "-o" ) {
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 				i += 1;
 				if ( i == argc ) continue;				// next argument available ?
 				args[nargs++] = argv[i];				// pass argument along
 				if ( arg == "-o" ) o_file = i;			// remember file
-			} else if ( strncmp(arg.c_str(), "-XCFA", 5) == 0 ) {				// CFA pass through
-				if(arg.size() == 5) {
+			} else if ( strncmp(arg.c_str(), "-XCFA", 5) == 0 ) { // CFA pass through
+				if ( arg.size() == 5 ) {
 					i += 1;
-					if ( i == argc ) continue;				// next argument available ?
+					if ( i == argc ) continue;			// next argument available ?
 					Putenv( argv, argv[i] );
-
-					// CFA specific arguments
-				}
-				else if(arg[5] == ',') {
+				} else if ( arg[5] == ',' ) {			// CFA specific arguments
 					Putenv( argv, argv[i] + 6 );
-
-					// CFA specific arguments
-				}
-				else {
+				} else {								// CFA specific arguments
 					args[nargs++] = argv[i];
-				}
-
+				} // if
 			} else if ( arg == "-CFA" ) {
 				CFA_flag = true;						// strip the -CFA flag
@@ -235,14 +228,14 @@
 			} else if ( arg == "-v" ) {
 				verbose = true;							// verbosity required
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 			} else if ( arg == "-g" ) {
 				debugging = true;						// symbolic debugging required
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 			} else if ( arg == "-save-temps" ) {
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 				Putenv( argv, arg );					// save cfa-cpp output
 			} else if ( prefix( arg, "-x" ) ) {			// file suffix ?
 				string lang;
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 				if ( arg.length() == 2 ) {				// separate argument ?
 					i += 1;
@@ -261,11 +254,11 @@
 			} else if ( prefix( arg, "-std=" ) || prefix( arg, "--std=" ) ) {
 				std_flag = true;						// -std=XX provided
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 			} else if ( arg == "-w" ) {
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 				Putenv( argv, arg );
 			} else if ( prefix( arg, "-W" ) ) {			// check before next tests
 				if ( arg == "-Werror" || arg == "-Wall" ) {
-					args[nargs++] = argv[i];			// pass argument along
+					args[nargs++] = argv[i];			// pass flag along
 					Putenv( argv, argv[i] );
 				} else {
@@ -281,9 +274,15 @@
 				bprefix = arg.substr(2);				// strip the -B flag
 			} else if ( arg == "-c" || arg == "-S" || arg == "-E" || arg == "-M" || arg == "-MM" ) {
-				args[nargs++] = argv[i];				// pass argument along
+				args[nargs++] = argv[i];				// pass flag along
 				if ( arg == "-E" || arg == "-M" || arg == "-MM" ) {
 					cpp_flag = true;					// cpp only
 				} // if
 				link = false;                           // no linkage required
+			} else if ( arg == "-D" || arg == "-U" || arg == "-I" || arg == "-MF" || arg == "-MT" || arg == "-MQ" ||
+						arg == "-include" || arg == "-imacros" || arg == "-idirafter" || arg == "-iprefix" ||
+						arg == "-iwithprefix" || arg == "-iwithprefixbefore" || arg == "-isystem" || arg == "-isysroot" ) {
+				args[nargs++] = argv[i];				// pass flag along
+				i += 1;
+				args[nargs++] = argv[i];				// pass argument along
 			} else if ( arg[1] == 'l' ) {
 				// if the user specifies a library, load it after user code
