diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 23eaa6d82ce8d82eb7079ebae45af4aefc113b59..a8c135b29773cc2c30f437647bce1c8eb99f6d37 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -4992,9 +4992,10 @@ ECPGRelease: TransactionStmt SQL_RELEASE
 		if (strncmp($1, "begin", 5) == 0)
                         yyerror("RELEASE does not make sense when beginning a transaction");
 
-		fprintf(yyout, "ECPGtrans(__LINE__, %s, \"%s\");", connection, $1);
+		fprintf(yyout, "ECPGtrans(__LINE__, %s, \"%s\");",
+				connection ? connection : "NULL", $1);
 		whenever_action(0);
-		fprintf(yyout, "ECPGdisconnect(\"\");"); 
+		fprintf(yyout, "ECPGdisconnect(__LINE__, \"\");"); 
 		whenever_action(0);
 		free($1);
 	}