diff --git a/CREDITS b/CREDITS
index 18b92ea65f279bc18216e7756c4a6988c190a193..811d794ee4a0fc033a2f9c0b399a79b9b1f35a3e 100644
--- a/CREDITS
+++ b/CREDITS
@@ -5,8 +5,11 @@ wrapper (Milter.py) that handles attachments, did lots of testing, packaged
 it with distutils, and generally transformed it from a quick hack to a
 real, usable Python extension.
 
-Other contributors:
+Other contributors (in random order):
 
+Dave MacQuigg 
+  for noticing that smfi_insheader wasn't supported, and creating
+  a template to help first time pymilter users create their own milter.
 Terence Way
   for providing a Python port of SPF
 Scott Kitterman
diff --git a/Milter/__init__.py b/Milter/__init__.py
index b9912a0a87a35f2822efbc0ca70e15a12a323f2c..4a2e9d419464622afd5e108e788bcafee1c113f0 100755
--- a/Milter/__init__.py
+++ b/Milter/__init__.py
@@ -16,7 +16,7 @@ from milter import ACCEPT,CONTINUE,REJECT,DISCARD,TEMPFAIL,	\
 try: from milter import QUARANTINE
 except: pass
 
-__version__ = '0.8.3'
+__version__ = '0.8.4'
 
 _seq_lock = thread.allocate_lock()
 _seq = 0
diff --git a/TODO b/TODO
index ab412e84ff012ba1ac972eaa38fb987f7a9b8432..9171a27525e059a094afdc3428d4ec1c7c815cec 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,9 @@
-Train honeypot with auto-whitelisted mail as ham.  This should result in
-a totally self training auto screener.  Rescind whitelist for banned 
-extensions, in case sender is infected.
+Send DSN for permerror before processing extended result.  An additional
+DSN may be sent based on extended result.
+
+Rescind whitelist for banned extensions, in case sender is infected.
+
+Train honeypot on error only.
 
 Find rfc2822 policy for MFROM quoting.
 
diff --git a/milter.spec b/milter.spec
index 8ce61414d0ed3a93e2f337d8a2154423ebc348b8..0187d50646773ab6dc66683ca80009e0e674407b 100644
--- a/milter.spec
+++ b/milter.spec
@@ -1,5 +1,5 @@
 %define name milter
-%define version 0.8.3
+%define version 0.8.4
 %define release 1.RH7
 # what version of RH are we building for?
 %define redhat9 0
@@ -169,10 +169,12 @@ rm -rf $RPM_BUILD_ROOT
 /usr/share/sendmail-cf/hack/rhsbl.m4
 
 %changelog
-* Fri Oct 20 2005 Stuart Gathman <stuart@bmsi.com> 0.8.4-1
+* Thu Oct 20 2005 Stuart Gathman <stuart@bmsi.com> 0.8.4-1
 - Fix SPF policy via sendmail access map (case insensitive keys).
-- Auto whitelist senders
-* Thu Oct 12 2005 Stuart Gathman <stuart@bmsi.com> 0.8.3-1
+- Auto whitelist senders, train screener on whitelisted messages
+- Optional idx parameter to addheader to invoke smfi_insheader
+- Activate progress when SMFIR_PROGRESS defined
+* Wed Oct 12 2005 Stuart Gathman <stuart@bmsi.com> 0.8.3-1
 - Keep screened honeypot mail, but optionally discard honeypot only mail.
 - spf_accept_fail option for braindead SPF senders (treats fail like softfail)
 - Consider SMTP AUTH connections internal.
diff --git a/neutral.txt b/neutral.txt
index 8d2a423cb2bec5c8cfda662cad6880adcf5c74db..1a4b2724f3c24ac87827ebd866d7b974105d96ca 100644
--- a/neutral.txt
+++ b/neutral.txt
@@ -18,7 +18,7 @@ sent via an authorized SMTP server, but may still be legitimate.  Since there
 is no positive confirmation that the message is really from you, we have
 to give it extra scrutiny - including verifying that the sender really
 exists by sending you this DSN.  We will remember this sender and not
-bother you again for while.  You can avoid this message entirely for
+bother you again for a while.  You can avoid this message entirely for
 legitimate mail by using an authorized SMTP server.  Contact your mail
 administrator and ask how to configure your email client to use an
 authorized server.