diff --git a/src/cmd/cc/lex.c b/src/cmd/cc/lex.c
index e3a8e440d88ed2a478cd8c4972ccbd0b5534a913..a1de21cd82ae9493d922f91017febccf8eccf511 100644
--- a/src/cmd/cc/lex.c
+++ b/src/cmd/cc/lex.c
@@ -244,6 +244,7 @@ compile(char *file, char **defs, int ndef)
 			errorexit();
 		}
 		Binit(&outbuf, c, OWRITE);
+		outfile = strdup(outfile);
 	}
 	newio();
 	first = 0;