diff --context -r ../inn-1.5.1/innd/art.c innd/art.c
*** ../inn-1.5.1/innd/art.c	Tue Dec 17 09:40:40 1996
--- innd/art.c	Fri Jul 18 23:58:36 1997
***************
*** 1794,1800 ****
  
  #if defined(DO_PERL)
      pathForPerl = HeaderFind(article->Data, "Path", 4) ;
!     if ((perlrc = (char *)HandleArticle()) != 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);
--- 1794,1800 ----
  
  #if defined(DO_PERL)
      pathForPerl = HeaderFind(article->Data, "Path", 4) ;
!     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);
diff --context -r ../inn-1.5.1/innd/perl.c innd/perl.c
*** ../inn-1.5.1/innd/perl.c	Tue Dec 17 09:40:40 1996
--- innd/perl.c	Sat Jul 19 00:01:37 1997
***************
*** 34,40 ****
  extern char		*pathForPerl ;
  
  char *
! HandleArticle()
  {
     dSP;
     ARTHEADER	*hp;
--- 34,41 ----
  extern char		*pathForPerl ;
  
  char *
! HandleArticle(artBody)
! char *artBody;
  {
     dSP;
     ARTHEADER	*hp;
***************
*** 53,58 ****
--- 54,63 ----
         if (hp->Found && hp->Value && strcmp (hp->Name,"Path") != 0)
           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__", 4, newSVpv(artBody, 0), 0) ;
  
     if (pathForPerl != NULL)
       {
