diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index f28f38211f..29271f9e46 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.514 2007/01/28 03:50:34 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.515 2007/01/28 06:32:03 tgl Exp $
  *
  * NOTES
  *
@@ -2427,18 +2427,19 @@ LogChildExit(int lev, const char *procname, int pid, int exitstatus)
 		/*------
 		  translator: %s is a noun phrase describing a child process, such as
 		  "server process" */
-				(errmsg("%s (PID %d) was terminated by exception %X",
+				(errmsg("%s (PID %d) was terminated by exception 0x%X",
 						procname, pid, WTERMSIG(exitstatus)),
 				 errhint("See C include file \"ntstatus.h\" for a description of the hex value.")));
-#elif defined(HAVE_DECL_SYS_SIGLIST)
+#elif defined(HAVE_DECL_SYS_SIGLIST) && HAVE_DECL_SYS_SIGLIST
 		ereport(lev,
 
 		/*------
 		  translator: %s is a noun phrase describing a child process, such as
 		  "server process" */
-				(errmsg("%s (PID %d) was terminated by signal: %s (%d)",
-						procname, pid, WTERMSIG(exitstatus) < NSIG ?
-						sys_siglist[WTERMSIG(exitstatus)] : "unknown signal",
+				(errmsg("%s (PID %d) was terminated by signal %s (%d)",
+						procname, pid,
+						WTERMSIG(exitstatus) < NSIG ?
+						sys_siglist[WTERMSIG(exitstatus)] : "(unknown)",
 						WTERMSIG(exitstatus))));
 #else
 		ereport(lev,
@@ -2455,7 +2456,7 @@ LogChildExit(int lev, const char *procname, int pid, int exitstatus)
 		/*------
 		  translator: %s is a noun phrase describing a child process, such as
 		  "server process" */
-				(errmsg("%s (PID %d) exited with unexpected status %d",
+				(errmsg("%s (PID %d) exited with unrecognized status %d",
 						procname, pid, exitstatus)));
 }
 
diff --git a/src/port/exec.c b/src/port/exec.c
index 5d7a8f052a..47c1f15b40 100644
--- a/src/port/exec.c
+++ b/src/port/exec.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/exec.c,v 1.51 2007/01/28 03:50:34 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/port/exec.c,v 1.52 2007/01/28 06:32:02 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -584,12 +584,13 @@ pclose_check(FILE *stream)
 				  WEXITSTATUS(exitstatus));
 	else if (WIFSIGNALED(exitstatus))
 #if defined(WIN32)
-		log_error(_("child process was terminated by exception %X\nSee C include file \"ntstatus.h\" for a description of the hex value."),
+		log_error(_("child process was terminated by exception 0x%X"),
+				  WTERMSIG(exitstatus));
+#elif defined(HAVE_DECL_SYS_SIGLIST) && HAVE_DECL_SYS_SIGLIST
+		log_error(_("child process was terminated by signal %s (%d)"),
+				  WTERMSIG(exitstatus) < NSIG ?
+				  sys_siglist[WTERMSIG(exitstatus)] : "(unknown)",
 				  WTERMSIG(exitstatus));
-#elif defined(HAVE_DECL_SYS_SIGLIST)
-		log_error(_("child process was terminated by signal: %s"),
-					WTERMSIG(exitstatus) < NSIG ?
-					sys_siglist[WTERMSIG(exitstatus)] : "unknown signal");
 #else
 		log_error(_("child process was terminated by signal %d"),
 				  WTERMSIG(exitstatus));