diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 7939b1f..3f3b2f2 100644
*** a/src/backend/libpq/pqcomm.c
--- b/src/backend/libpq/pqcomm.c
*************** StreamServerPort(int family, char *hostN
*** 319,324 ****
--- 319,326 ----
  	char		portNumberStr[32];
  	const char *familyDesc;
  	char		familyDescBuf[64];
+ 	const char *addrDesc;
+ 	char		addrBuf[NI_MAXHOST];
  	char	   *service;
  	struct addrinfo *addrs = NULL,
  			   *addr;
*************** StreamServerPort(int family, char *hostN
*** 407,413 ****
  			break;
  		}
  
! 		/* set up family name for possible error messages */
  		switch (addr->ai_family)
  		{
  			case AF_INET:
--- 409,415 ----
  			break;
  		}
  
! 		/* set up address family name for log messages */
  		switch (addr->ai_family)
  		{
  			case AF_INET:
*************** StreamServerPort(int family, char *hostN
*** 431,443 ****
  				break;
  		}
  
  		if ((fd = socket(addr->ai_family, SOCK_STREAM, 0)) == PGINVALID_SOCKET)
  		{
  			ereport(LOG,
  					(errcode_for_socket_access(),
! 			/* translator: %s is IPv4, IPv6, or Unix */
! 					 errmsg("could not create %s socket: %m",
! 							familyDesc)));
  			continue;
  		}
  
--- 433,460 ----
  				break;
  		}
  
+ 		/* set up text form of address for log messages */
+ #ifdef HAVE_UNIX_SOCKETS
+ 		if (addr->ai_family == AF_UNIX)
+ 			addrDesc = unixSocketPath;
+ 		else
+ #endif
+ 		{
+ 			pg_getnameinfo_all((const struct sockaddr_storage *) addr->ai_addr,
+ 							   addr->ai_addrlen,
+ 							   addrBuf, sizeof(addrBuf),
+ 							   NULL, 0,
+ 							   NI_NUMERICHOST);
+ 			addrDesc = addrBuf;
+ 		}
+ 
  		if ((fd = socket(addr->ai_family, SOCK_STREAM, 0)) == PGINVALID_SOCKET)
  		{
  			ereport(LOG,
  					(errcode_for_socket_access(),
! 			/* translator: first %s is IPv4, IPv6, or Unix */
! 				  errmsg("could not create %s socket for address \"%s\": %m",
! 						 familyDesc, addrDesc)));
  			continue;
  		}
  
*************** StreamServerPort(int family, char *hostN
*** 461,467 ****
  			{
  				ereport(LOG,
  						(errcode_for_socket_access(),
! 						 errmsg("setsockopt(SO_REUSEADDR) failed: %m")));
  				closesocket(fd);
  				continue;
  			}
--- 478,486 ----
  			{
  				ereport(LOG,
  						(errcode_for_socket_access(),
! 				/* translator: first %s is IPv4, IPv6, or Unix */
! 						 errmsg("setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m",
! 								familyDesc, addrDesc)));
  				closesocket(fd);
  				continue;
  			}
*************** StreamServerPort(int family, char *hostN
*** 476,482 ****
  			{
  				ereport(LOG,
  						(errcode_for_socket_access(),
! 						 errmsg("setsockopt(IPV6_V6ONLY) failed: %m")));
  				closesocket(fd);
  				continue;
  			}
--- 495,503 ----
  			{
  				ereport(LOG,
  						(errcode_for_socket_access(),
! 				/* translator: first %s is IPv4, IPv6, or Unix */
! 						 errmsg("setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m",
! 								familyDesc, addrDesc)));
  				closesocket(fd);
  				continue;
  			}
*************** StreamServerPort(int family, char *hostN
*** 494,502 ****
  		{
  			ereport(LOG,
  					(errcode_for_socket_access(),
! 			/* translator: %s is IPv4, IPv6, or Unix */
! 					 errmsg("could not bind %s socket: %m",
! 							familyDesc),
  					 (IS_AF_UNIX(addr->ai_family)) ?
  				  errhint("Is another postmaster already running on port %d?"
  						  " If not, remove socket file \"%s\" and retry.",
--- 515,523 ----
  		{
  			ereport(LOG,
  					(errcode_for_socket_access(),
! 			/* translator: first %s is IPv4, IPv6, or Unix */
! 					 errmsg("could not bind %s address \"%s\": %m",
! 							familyDesc, addrDesc),
  					 (IS_AF_UNIX(addr->ai_family)) ?
  				  errhint("Is another postmaster already running on port %d?"
  						  " If not, remove socket file \"%s\" and retry.",
*************** StreamServerPort(int family, char *hostN
*** 533,544 ****
  		{
  			ereport(LOG,
  					(errcode_for_socket_access(),
! 			/* translator: %s is IPv4, IPv6, or Unix */
! 					 errmsg("could not listen on %s socket: %m",
! 							familyDesc)));
  			closesocket(fd);
  			continue;
  		}
  		ListenSocket[listen_index] = fd;
  		added++;
  	}
--- 554,571 ----
  		{
  			ereport(LOG,
  					(errcode_for_socket_access(),
! 			/* translator: first %s is IPv4, IPv6, or Unix */
! 					 errmsg("could not listen on %s address \"%s\": %m",
! 							familyDesc, addrDesc)));
  			closesocket(fd);
  			continue;
  		}
+ 
+ 		ereport(DEBUG1,
+ 		/* translator: first %s is IPv4, IPv6, or Unix */
+ 				(errmsg("listening on %s address \"%s\"",
+ 						familyDesc, addrDesc)));
+ 
  		ListenSocket[listen_index] = fd;
  		added++;
  	}
