diff -ur postfix-2.1.4.orig/src/cleanup/cleanup.h postfix-2.1.4/src/cleanup/cleanup.h
--- postfix-2.1.4.orig/src/cleanup/cleanup.h	2004-01-26 23:39:01.000000000 +0900
+++ postfix-2.1.4/src/cleanup/cleanup.h	2004-09-29 12:13:11.000000000 +0900
@@ -90,6 +90,7 @@
 extern int cleanup_masq_flags;
 extern MAPS *cleanup_send_bcc_maps;
 extern MAPS *cleanup_rcpt_bcc_maps;
+extern ARGV *cleanup_log_header;
 
  /*
   * Address masquerading fine control.
diff -ur postfix-2.1.4.orig/src/cleanup/cleanup_init.c postfix-2.1.4/src/cleanup/cleanup_init.c
--- postfix-2.1.4.orig/src/cleanup/cleanup_init.c	2004-02-21 09:45:30.000000000 +0900
+++ postfix-2.1.4/src/cleanup/cleanup_init.c	2004-09-29 12:23:43.000000000 +0900
@@ -119,6 +119,7 @@
 char   *var_send_bcc_maps;		/* sender auto-bcc maps */
 char   *var_rcpt_bcc_maps;		/* recipient auto-bcc maps */
 bool    var_enable_errors_to;		/* extract Errors-To: address. */
+char   *var_log_header;
 
 CONFIG_INT_TABLE cleanup_int_table[] = {
     VAR_HOPCOUNT_LIMIT, DEF_HOPCOUNT_LIMIT, &var_hopcount_limit, 1, 0,
@@ -159,6 +160,7 @@
     VAR_MASQ_CLASSES, DEF_MASQ_CLASSES, &var_masq_classes, 0, 0,
     VAR_SEND_BCC_MAPS, DEF_SEND_BCC_MAPS, &var_send_bcc_maps, 0, 0,
     VAR_RCPT_BCC_MAPS, DEF_RCPT_BCC_MAPS, &var_rcpt_bcc_maps, 0, 0,
+    VAR_LOG_HEADER, DEF_LOG_HEADER, &var_log_header, 0, 0,
     0,
 };
 
@@ -178,6 +180,7 @@
 int     cleanup_masq_flags;
 MAPS   *cleanup_send_bcc_maps;
 MAPS   *cleanup_rcpt_bcc_maps;
+ARGV   *cleanup_log_header;
 
  /*
   * Address extension propagation restrictions.
@@ -247,6 +250,8 @@
 	cleanup_rcpt_bcc_maps =
 	    maps_create(VAR_RCPT_BCC_MAPS, var_rcpt_bcc_maps,
 			DICT_FLAG_LOCK);
+    if (*var_log_header)
+	cleanup_log_header = argv_split(var_log_header, " ,\t\r\n");
 
     flush_init();
 }
diff -ur postfix-2.1.4.orig/src/cleanup/cleanup_message.c postfix-2.1.4/src/cleanup/cleanup_message.c
--- postfix-2.1.4.orig/src/cleanup/cleanup_message.c	2004-02-21 07:22:04.000000000 +0900
+++ postfix-2.1.4/src/cleanup/cleanup_message.c	2004-09-29 12:27:04.000000000 +0900
@@ -405,6 +405,25 @@
     if (msg_verbose)
 	msg_info("%s: '%.200s'", myname, vstring_str(header_buf));
 
+    if (cleanup_log_header) {
+	char **p;
+	char *header = vstring_str(header_buf);
+	for (p = cleanup_log_header->argv; *p != 0; p++) {
+	    if (strncasecmp(header, *p, strlen(*p)) == 0 && header[strlen(*p)] == ':') {
+		int i;
+		char *out = mymalloc(strlen(header)+1);
+		strcpy(out, header);
+		for (i = 0; out[i] != '\0'; i++) {
+		    if (out[i] == '\r' || out[i] == '\n' || out[i] == '\t')
+			out[i] = ' ';
+		}
+		msg_info("%s: %s", state->queue_id, out);
+		myfree(out);
+	    }
+	}
+    }
+
+
     /*
      * Crude header filtering. This stops malware that isn't sophisticated
      * enough to use fancy header encodings.
diff -ur postfix-2.1.4.orig/src/global/mail_params.h postfix-2.1.4/src/global/mail_params.h
--- postfix-2.1.4.orig/src/global/mail_params.h	2004-04-22 03:56:04.000000000 +0900
+++ postfix-2.1.4/src/global/mail_params.h	2004-09-29 12:18:57.000000000 +0900
@@ -1103,6 +1103,10 @@
 #define DEF_VIRT_EXPAN_LIMIT	1000
 extern int var_virt_expan_limit;
 
+#define VAR_LOG_HEADER		"log_header"
+#define DEF_LOG_HEADER		""
+extern char *log_header;
+
  /*
   * Message/queue size limits.
   */
