diff -ur postfix-2.0.16/src/cleanup/cleanup.h postfix-2.0.16+/src/cleanup/cleanup.h
--- postfix-2.0.16/src/cleanup/cleanup.h	Tue Dec  3 23:58:11 2002
+++ postfix-2.0.16+/src/cleanup/cleanup.h	Tue Nov  4 00:20:58 2003
@@ -82,6 +82,7 @@
 extern MAPS *cleanup_virt_alias_maps;
 extern ARGV *cleanup_masq_domains;
 extern int cleanup_masq_flags;
+extern ARGV *cleanup_log_header;
 
  /*
   * Address masquerading fine control.
diff -ur postfix-2.0.16/src/cleanup/cleanup_init.c postfix-2.0.16+/src/cleanup/cleanup_init.c
--- postfix-2.0.16/src/cleanup/cleanup_init.c	Tue Dec  3 23:56:56 2002
+++ postfix-2.0.16+/src/cleanup/cleanup_init.c	Mon Nov  3 09:10:45 2003
@@ -111,6 +111,7 @@
 char   *var_masq_classes;		/* what to masquerade */
 int     var_qattr_count_limit;		/* named attribute limit */
 int     var_body_check_len;		/* when to stop body scan */
+char   *var_log_header;
 
 CONFIG_INT_TABLE cleanup_int_table[] = {
     VAR_HOPCOUNT_LIMIT, DEF_HOPCOUNT_LIMIT, &var_hopcount_limit, 1, 0,
@@ -142,6 +143,7 @@
     VAR_ALWAYS_BCC, DEF_ALWAYS_BCC, &var_always_bcc, 0, 0,
     VAR_RCPT_WITHELD, DEF_RCPT_WITHELD, &var_rcpt_witheld, 1, 0,
     VAR_MASQ_CLASSES, DEF_MASQ_CLASSES, &var_masq_classes, 0, 0,
+    VAR_LOG_HEADER, DEF_LOG_HEADER, &var_log_header, 0, 0,
     0,
 };
 
@@ -158,6 +160,7 @@
 MAPS   *cleanup_virt_alias_maps;
 ARGV   *cleanup_masq_domains;
 int     cleanup_masq_flags;
+ARGV   *cleanup_log_header;
 
  /*
   * Address extension propagation restrictions.
@@ -216,6 +219,8 @@
     if (*var_masq_classes)
 	cleanup_masq_flags = name_mask(VAR_MASQ_CLASSES, masq_class_table,
 				       var_masq_classes);
+    if (*var_log_header)
+	cleanup_log_header = argv_split(var_log_header, " ,\t\r\n");
 }
 
 /* cleanup_post_jail - initialize after entering the chroot jail */
diff -ur postfix-2.0.16/src/cleanup/cleanup_message.c postfix-2.0.16+/src/cleanup/cleanup_message.c
--- postfix-2.0.16/src/cleanup/cleanup_message.c	Mon Jan 13 01:17:45 2003
+++ postfix-2.0.16+/src/cleanup/cleanup_message.c	Tue Nov  4 02:21:48 2003
@@ -380,6 +380,24 @@
     if (msg_verbose)
 	msg_info("%s: '%s'", 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.0.16/src/global/mail_params.h postfix-2.0.16+/src/global/mail_params.h
--- postfix-2.0.16/src/global/mail_params.h	Tue Mar  4 07:07:03 2003
+++ postfix-2.0.16+/src/global/mail_params.h	Tue Nov  4 01:49:50 2003
@@ -1006,6 +1006,10 @@
 #define DEF_EXTRA_RCPT_LIMIT	10240
 extern int var_extra_rcpt_limit;
 
+#define	VAR_LOG_HEADER		"log_header"
+#define	DEF_LOG_HEADER		""
+extern char *log_header;
+
  /*
   * Message/queue size limits.
   */
