--- listhandler.module.orig	2009-08-21 19:48:12.000000000 -0400
+++ listhandler.module	2009-08-21 19:52:28.000000000 -0400
@@ -425,6 +425,10 @@
       }
       $node = listhandler_find_parent($node, $header);
 
+      // ensure the author can post - provide opportunity for third party
+      // modules to update author if given author can't post
+      listhandler_check_author_access($node);
+
       $node->message_id = $header->message_id;
       $node->sentbylisthandler = true;
 
@@ -437,6 +441,25 @@
 }
 
 /**
+ * Check to see if the assigned author will have permission
+ * to post this node. If not, enable other modules to change
+ * the author via hook_listhandler_author(&$node)
+ */
+function listhandler_check_author_access(&$node) {
+  if (($node->nid && node_access('update',$node)) || !$node->nid && node_access('create',$node)) {
+    return;
+  } 
+  // assigned user does not have access to post this node
+  // check for hooks to update the user
+  foreach (module_list() as $name) {
+    if (module_hook($name, 'listhandler_author')) {
+      $function = $name .'_listhandler_author';
+      $function($node);
+    }
+  }
+}
+
+/**
  * Create account for unknown authors of a new mailsubmitted node or comment.
  * Admin is able to choose if it will be
  * a real account or a blocked one (see conf).
