diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 36a8e3eceb93460ece97872ab5d6e4e2e35ed00b..df1ff05a8fe339f88771d8d5ae803049ed0706a1 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -153,9 +153,10 @@ typedef struct remoteConnHashEnt
 	do { \
 			char *conname_or_str = text_to_cstring(PG_GETARG_TEXT_PP(0)); \
 			rconn = getConnectionByName(conname_or_str); \
-			if(rconn) \
+			if (rconn) \
 			{ \
 				conn = rconn->conn; \
+				conname = conname_or_str; \
 			} \
 			else \
 			{ \
@@ -183,9 +184,9 @@ typedef struct remoteConnHashEnt
 
 #define DBLINK_GET_NAMED_CONN \
 	do { \
-			char *conname = text_to_cstring(PG_GETARG_TEXT_PP(0)); \
+			conname = text_to_cstring(PG_GETARG_TEXT_PP(0)); \
 			rconn = getConnectionByName(conname); \
-			if(rconn) \
+			if (rconn) \
 				conn = rconn->conn; \
 			else \
 				DBLINK_CONN_NOT_AVAIL; \
@@ -598,6 +599,7 @@ PG_FUNCTION_INFO_V1(dblink_send_query);
 Datum
 dblink_send_query(PG_FUNCTION_ARGS)
 {
+	char	   *conname = NULL;
 	PGconn	   *conn = NULL;
 	char	   *sql = NULL;
 	remoteConn *rconn = NULL;
@@ -919,6 +921,7 @@ PG_FUNCTION_INFO_V1(dblink_is_busy);
 Datum
 dblink_is_busy(PG_FUNCTION_ARGS)
 {
+	char	   *conname = NULL;
 	PGconn	   *conn = NULL;
 	remoteConn *rconn = NULL;
 
@@ -945,6 +948,7 @@ Datum
 dblink_cancel_query(PG_FUNCTION_ARGS)
 {
 	int			res = 0;
+	char	   *conname = NULL;
 	PGconn	   *conn = NULL;
 	remoteConn *rconn = NULL;
 	PGcancel   *cancel;
@@ -979,6 +983,7 @@ Datum
 dblink_error_message(PG_FUNCTION_ARGS)
 {
 	char	   *msg;
+	char	   *conname = NULL;
 	PGconn	   *conn = NULL;
 	remoteConn *rconn = NULL;
 
@@ -1488,6 +1493,7 @@ PG_FUNCTION_INFO_V1(dblink_get_notify);
 Datum
 dblink_get_notify(PG_FUNCTION_ARGS)
 {
+	char	   *conname = NULL;
 	PGconn	   *conn = NULL;
 	remoteConn *rconn = NULL;
 	PGnotify   *notify;
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index 511dd5efcfbe1fc6bb663a3bcf1525530df69d88..1db153aeb1af861d776530d44b43b7d1ea05b4f9 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -371,7 +371,7 @@ SELECT *
 FROM dblink('myconn','SELECT * FROM foobar',false) AS t(a int, b text, c text[])
 WHERE t.a > 7;
 NOTICE:  relation "foobar" does not exist
-CONTEXT:  Error occurred on dblink connection named "unnamed": could not execute query.
+CONTEXT:  Error occurred on dblink connection named "myconn": could not execute query.
  a | b | c 
 ---+---+---
 (0 rows)
@@ -494,7 +494,7 @@ SELECT dblink_close('myconn','rmt_foo_cursor');
 -- this should fail because there is no open transaction
 SELECT dblink_exec('myconn','DECLARE xact_test CURSOR FOR SELECT * FROM foo');
 ERROR:  DECLARE CURSOR can only be used in transaction blocks
-CONTEXT:  Error occurred on dblink connection named "unnamed": could not execute command.
+CONTEXT:  Error occurred on dblink connection named "myconn": could not execute command.
 -- reset remote transaction state
 SELECT dblink_exec('myconn','ABORT');
  dblink_exec