diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
index 82aa14a65d..8189c23560 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -349,6 +349,7 @@ connect_pg_server(ForeignServer *server, UserMapping *user)
 		const char **keywords;
 		const char **values;
 		int			n;
+		char 	   fallback_apname[40];
 
 		/*
 		 * Construct connection params from generic options of ForeignServer
@@ -366,9 +367,10 @@ connect_pg_server(ForeignServer *server, UserMapping *user)
 		n += ExtractConnectionOptions(user->options,
 									  keywords + n, values + n);
 
-		/* Use "postgres_fdw" as fallback_application_name. */
+		/* Use "postgres_fdw for remote PID: (pid)" as fallback_application_name. */
+		snprintf(fallback_apname, sizeof(fallback_apname), "postgres_fdw for remote PID: %d", MyProcPid);
 		keywords[n] = "fallback_application_name";
-		values[n] = "postgres_fdw";
+		values[n] = fallback_apname;
 		n++;
 
 		/* Set client_encoding so that libpq can convert encoding properly. */
