diff --git a/Milter/__init__.py b/Milter/__init__.py
index 9b27c959ff178aa81e47e878da8b62818719b9a1..bac26fa1c9bb218e6a35abd45e255c99908aab3d 100755
--- a/Milter/__init__.py
+++ b/Milter/__init__.py
@@ -8,7 +8,7 @@
 # Copyright 2001,2009 Business Management Systems, Inc.
 # This code is under the GNU General Public License.  See COPYING for details.
 
-__version__ = '0.9.2'
+__version__ = '0.9.3'
 
 import os
 import milter
diff --git a/doc/milter.py b/doc/milter.py
index 1da555b6b39ca7f9142367b9c7a7250d88337e0c..2fe7776b6266ea6d012a37efc30beef6db247416 100644
--- a/doc/milter.py
+++ b/doc/milter.py
@@ -6,6 +6,19 @@
 # A thin wrapper around libmilter.
 #
 
+## Hold context for a milter connection.
+# Each connection to sendmail creates a new <code>SMFICTX</code> struct within
+# libmilter.  The milter module in turn creates a milterContext
+# tied to the <code>SMFICTX</code> struct via <code>smfi_setpriv</code>
+# to hold a PyThreadState and a user defined Python object for the connection.
+# 
+# Most application interaction with libmilter takes places via 
+# the milterContext object for the connection.  It is passed to
+# callback functions as the first parameter.
+#
+# The <code>Milter</code> module creates a python class for each connection,
+# and converts function callbacks to instance method invocations.
+#
 class milterContext(object):
   def getsymval(self,sym): pass
   def setreply(self,rcode,xcode,*msg): pass