Got this patch from a FreeBSD user yesterday. I tested it for a day and all seems just fine.
This backs out the 3.1.1 change and reverts to the 3.1.0 behavior. This leaves some 3.1.1 CRLF code in Message.pm, but it now has no effect. Normal processing of the headers fixes any trouble I was having down stream. --paul Here is the patch: *** lib/Mail/SpamAssassin/PerMsgStatus.pm_orig Sat Mar 18 16:36:31 2006 --- lib/Mail/SpamAssassin/PerMsgStatus.pm Sat Mar 18 16:41:41 2006 *************** *** 684,704 **** sub rewrite_mail { my ($self) = @_; ! my $msg = $self->{msg}->get_mbox_separator() || ''; ! if ($self->{is_spam} && $self->{conf}->{report_safe}) { ! $msg .= $self->rewrite_report_safe(); } else { ! $msg .= $self->rewrite_no_report_safe(); ! } ! ! # Make the line endings appropriate for the situation ! if ($self->{msg}->{line_ending} ne "\n") { ! $msg =~ s/\r?\n/$self->{msg}->{line_ending}/g; } - - return $msg; } # rewrite the message in report_safe mode --- 684,696 ---- sub rewrite_mail { my ($self) = @_; ! my $mbox = $self->{msg}->get_mbox_separator() || ''; if ($self->{is_spam} && $self->{conf}->{report_safe}) { ! return $mbox.$self->rewrite_report_safe(); } else { ! return $mbox.$self->rewrite_no_report_safe(); } } # rewrite the message in report_safe mode