--- inn-1.7.2.orig/innd/art.c
+++ inn-1.7.2/innd/art.c
@@ -139,6 +139,29 @@
     {	"Posting-Version",	HTobs },
     {	"Received",		HTobs },
     {	"Relay-Version",	HTobs },
+    {	"NNTP-Posting-Host",	HTstd },
+    {	"Followup-To",		HTstd },
+    {	"Organization",		HTstd },
+    {	"Content-Type",		HTstd },
+    {	"Content-Base",		HTstd },
+    {	"Content-Disposition",	HTstd },
+    {	"Content-Transfer-Encoding",	HTstd },
+    {	"X-Trace",		HTstd },
+    {	"X-Newsreader",		HTstd },
+    {	"X-Mailer",		HTstd },
+    {	"X-Newsposter",		HTstd },
+    {	"X-Cancelled-By",	HTstd },
+    {	"X-Canceled-By",	HTstd },
+    {	"Cancel-Key",		HTstd },
+    {	"Cancel-Lock",		HTstd },
+    {	"List-ID",		HTstd },
+    {	"X-HTTP-UserAgent",	HTstd },
+    {	"X-HTTP-Via",		HTstd },
+    {	"X-No-Archive",		HTstd },
+    {	"Injection-Info",	HTstd },
+    {	"Injection-Date",	HTstd },
+    {	"NNTP-Posting-Date",	HTstd },
+    {	"In-Reply-To",		HTstd },
 };
 
 ARTHEADER	*ARTheadersENDOF = ENDOF(ARTheaders);
@@ -1833,7 +1856,7 @@
 
 #if defined(DO_PERL)
     pathForPerl = HeaderFind(article->Data, "Path", 4) ;
-    if ((perlrc = (char *)HandleArticle()) != NULL) {
+    if ((perlrc = (char *)HandleArticle(Data.Body)) != NULL) {
         (void)sprintf(buff, "%d %s", NNTP_REJECTIT_VAL, perlrc);
         syslog(L_NOTICE, "rejecting[perl] %s %s", HDR(_message_id), buff);
         ARTlog(&Data, ART_REJECT, buff);
--- inn-1.7.2.orig/innd/perl.c
+++ inn-1.7.2/innd/perl.c
@@ -34,7 +34,8 @@
 extern char		*pathForPerl ;
 
 char *
-HandleArticle()
+HandleArticle(artBody)
+char *artBody;
 {
    dSP;
    ARTHEADER	*hp;
@@ -54,6 +55,10 @@
          hv_store(hdr, (char *) hp->Name, strlen(hp->Name), newSVpv(hp->Value, 0), 0);
      }
 
+   /* store article body */
+   if (artBody != NULL)
+     hv_store(hdr, (char *) "__BODY__", 8, newSVpv(artBody, 0), 0) ;
+
    if (pathForPerl != NULL)
      {
        char *p = strchr (pathForPerl,'\n') ;
