diff --git a/Doxyfile b/Doxyfile
index fecd1229decb983c079aeb4e97ca0f91f89d4b90..d14d1c785f07ce1b52f554cac0768164529e2a07 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -291,7 +291,7 @@ EXTRACT_ALL            = NO
 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
 # will be included in the documentation.
 
-EXTRACT_PRIVATE        = NO
+EXTRACT_PRIVATE        = YES
 
 # If the EXTRACT_STATIC tag is set to YES all static members of a file 
 # will be included in the documentation.
diff --git a/Milter/__init__.py b/Milter/__init__.py
index f712fe0b3ef8ff0c278bccbd54864c22c8f80f1f..48fe2aa3e055c33de6f29cd1526b43480ddd6b87 100755
--- a/Milter/__init__.py
+++ b/Milter/__init__.py
@@ -98,6 +98,28 @@ class Base(object):
     self._protocol = 0                # no protocol options by default
     if ctx:
       ctx.setpriv(self)
+  ## @var _actions
+  # A bitmask of actions this milter has negotiated to use.
+  # By default, all actions are enabled.  This may be changed
+  # by calling <code>milter.set_flags</code>, or by overriding
+  # the negotiate callback.  The bits include:
+  # <code>ADDHDRS,CHGBODY,MODBODY,ADDRCPT,ADDRCPT_PAR,DELRCPT
+  #  CHGHDRS,CURR_ACTS,QUARANTINE,CHGFROM,SETSMLIST</code>
+  #
+
+  ## @var _protocol
+  # A class var with a bitmask of protocol options negotiated.
+  # The bits generally indicate that a particular step should be
+  # skipped, since previous versions of the milter protocol had
+  # no provision for skipping steps.
+  # The bits include: <code>
+  # P_RCPT_REJ P_NR_CONN P_NR_HELO P_NR_MAIL P_NR_RCPT P_NR_DATA P_NR_UNKN
+  # P_NR_EOH P_NR_BODY P_NR_HDR P_NOCONNECT P_NOHELO P_NOMAIL P_NORCPT
+  # P_NODATA P_NOUNKNOWN P_NOEOH P_NOBODY P_NOHDRS P_HDR_LEADSPC P_SKIP
+  # </code> (all under the Milter namespace) and
+  # <code>Milter.ALL_OPTS</code> is all options available when 
+  # the <code>milter</code> module was compiled.
+
   ## Defined by subclasses to write log messages.
   def log(self,*msg): pass
   ## Called for each connection to the MTA.