Index: a/frontends/mailpost.in
===================================================================
--- a/frontends/mailpost.in	(revision 10156)
+++ a/frontends/mailpost.in	(revision 10157)
@@ -85,4 +85,6 @@
     $Sendmail = "cat" ;
     $WhereTo = "cat" ;
+} else {
+    $Sendmail = sprintf($Sendmail, $Maintainer);
 }
 
@@ -151,4 +153,6 @@
 my $message_id ;
 my $subject = "(NONE)";
+my @emptyHdrs = ();
+my $emptyHdrsString;
 
 $_ = <STDIN>;
@@ -213,4 +217,11 @@
     next if /^Approved:\s/sio && defined($approved);
     next if /^Distribution:\s/sio && defined($distribution);
+
+    # Collect empty header field names.
+    if (/^([^:]+):\s*$/) {
+        # 975 = 998 - length("X-Mailpost-Empty-Hdrs: ")
+        push(@emptyHdrs, $1) if length($1) < 975;
+        next;
+    }
 
     if (/^($exclude):\s*/sio) {
@@ -315,4 +326,9 @@
 $real_news_hdrs .= "References: ${references}\n"     if defined($references);
 
+# Keep trace of empty header fields.
+$emptyHdrsString = join("\n\t", @emptyHdrs);
+$real_news_hdrs .= "X-Mailpost-Empty-Hdrs: $emptyHdrsString\n"
+    if (length($emptyHdrsString) > 0);
+
 # Remove duplicate headers.
 my %headers = ();
@@ -330,5 +346,5 @@
         syslog("err", "$msg") unless $debugging || -t STDERR;
     }
-    open(TMPFILE, "|" . sprintf ($Sendmail, $Maintainer)) ||
+    open(TMPFILE, "|" . $Sendmail) ||
 	die "die(no tmpfile): sendmail: $!\n" ;
     print TMPFILE <<"EOF";
@@ -517,5 +533,5 @@
     print STDERR $msg,"\n" if -t STDERR ;
     
-    open(SENDMAIL, "|" . sprintf ($Sendmail,$Maintainer)) ||
+    open(SENDMAIL, "|" . $Sendmail) ||
 	die "die($msg): sendmail: $!\n" ;
     print SENDMAIL <<"EOF" ;
