diff --git a/src/interfaces/ecpg/preproc/output.c b/src/interfaces/ecpg/preproc/output.c
index a55bf2b..0465857 100644
--- a/src/interfaces/ecpg/preproc/output.c
+++ b/src/interfaces/ecpg/preproc/output.c
@@ -158,6 +158,7 @@ output_statement(char *stmt, int whenever_mode, enum ECPG_statement_type st)
 	free(stmt);
 	if (connection != NULL)
 		free(connection);
+	connection = NULL;
 }
 
 void
@@ -172,6 +173,7 @@ output_prepare_statement(char *name, char *stmt)
 	free(name);
 	if (connection != NULL)
 		free(connection);
+	connection = NULL;
 }
 
 void
@@ -192,6 +194,7 @@ output_deallocate_prepare_statement(char *name)
 	free(name);
 	if (connection != NULL)
 		free(connection);
+	connection = NULL;
 }
 
 static void
