diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index deaddfb..9a9ee19 100644
*** a/contrib/dblink/dblink.c
--- b/contrib/dblink/dblink.c
*************** createNewConnection(const char *name, re
*** 2237,2245 ****
--- 2237,2250 ----
  											   HASH_ENTER, &found);
  
  	if (found)
+ 	{
+ 		PQfinish(rconn->conn);
+ 		pfree(rconn);
+ 
  		ereport(ERROR,
  				(errcode(ERRCODE_DUPLICATE_OBJECT),
  				 errmsg("duplicate connection name")));
+ 	}
  
  	hentry->rconn = rconn;
  	strlcpy(hentry->name, name, sizeof(hentry->name));
