diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c
index cd770c8b156..0704837396f 100644
--- a/src/interfaces/ecpg/preproc/ecpg.c
+++ b/src/interfaces/ecpg/preproc/ecpg.c
@@ -327,6 +327,7 @@ main(int argc, char *const argv[])
 						fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
 								progname, output_filename, strerror(errno));
 						free(output_filename);
+						output_filename = NULL;
 						free(input_filename);
 						continue;
 					}
@@ -474,8 +475,10 @@ main(int argc, char *const argv[])
 				}
 			}
 
-			if (output_filename && out_option == 0)
+			if (output_filename && out_option == 0) {
 				free(output_filename);
+				output_filename = NULL;
+			}
 
 			free(input_filename);
 		}