diff --git a/src/interfaces/ecpg/ecpglib/prepare.c b/src/interfaces/ecpg/ecpglib/prepare.c
index 3874a64ae8e..7a9036bcfc0 100644
--- a/src/interfaces/ecpg/ecpglib/prepare.c
+++ b/src/interfaces/ecpg/ecpglib/prepare.c
@@ -620,6 +620,11 @@ ecpg_auto_prepare(int lineno, const char *connection_name, const int compat, cha
 			return false;
 
 		con = ecpg_get_connection(connection_name);
+		if (!ecpg_init(con, connection_name, lineno))
+		{
+			ecpg_free(*name);
+			return false;
+		}
 		prep = ecpg_find_prepared_statement(stmtID, con, NULL);
 		/* This prepared name doesn't exist on this connection. */
 		if (!prep && !prepare_common(lineno, con, stmtID, query))
