diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c
index 8b62fb6098cc5966b4638ba37e152e04411eeb03..b80fcee85fb7ece9553e66334fe1d8edcde676c3 100644
--- a/src/backend/postmaster/pgarch.c
+++ b/src/backend/postmaster/pgarch.c
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.35 2007/12/12 16:53:14 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.36 2007/12/18 00:49:34 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -414,6 +414,7 @@ pgarch_archiveXlog(char *xlog)
 {
 	char		xlogarchcmd[MAXPGPATH];
 	char		pathname[MAXPGPATH];
+	char		activitymsg[MAXFNAMELEN + 16];
 	char	   *dp;
 	char	   *endp;
 	const char *sp;
@@ -471,6 +472,11 @@ pgarch_archiveXlog(char *xlog)
 	ereport(DEBUG3,
 			(errmsg_internal("executing archive command \"%s\"",
 							 xlogarchcmd)));
+
+	/* Report archive activity in PS display */
+	snprintf(activitymsg, sizeof(activitymsg), "archiving %s", xlog);
+	set_ps_display(activitymsg, false);
+
 	rc = system(xlogarchcmd);
 	if (rc != 0)
 	{
@@ -527,11 +533,17 @@ pgarch_archiveXlog(char *xlog)
 							   xlogarchcmd)));
 		}
 
+		snprintf(activitymsg, sizeof(activitymsg), "failed on %s", xlog);
+		set_ps_display(activitymsg, false);
+
 		return false;
 	}
 	ereport(DEBUG1,
 			(errmsg("archived transaction log file \"%s\"", xlog)));
 
+	snprintf(activitymsg, sizeof(activitymsg), "last was %s", xlog);
+	set_ps_display(activitymsg, false);
+
 	return true;
 }