Index: mollom.module
===================================================================
--- mollom.module	(revision 506)
+++ mollom.module	(working copy)
@@ -577,43 +577,52 @@
   static $forms = NULL;
 
   if (!$forms) {
-    if (module_exists('comment')) {
-      $forms['comment_form'] = array(
-        'name' => 'comment form',
-        'mode' => MOLLOM_MODE_ANALYSIS,
-      );
-    }
+    $forms = module_invoke_all('mollom');
+  }
 
-    if (module_exists('contact')) {
-      $forms['contact_mail_page'] = array(
-        'name' => 'site-wide contact form',
-        'mode' => MOLLOM_MODE_ANALYSIS,
-      );
+  return $forms;
+}
 
-      $forms['contact_mail_user'] = array(
-        'name' => 'per-user contact forms',
-        'mode' => MOLLOM_MODE_ANALYSIS,
-      );
-    }
+/**
+ * Return which forms to protect, implementing on-behalfs for core modules.
+ */
+function mollom_mollom() {
+  if (module_exists('comment')) {
+    $forms['comment_form'] = array(
+      'name' => 'comment form',
+      'mode' => MOLLOM_MODE_ANALYSIS,
+    );
+  }
 
-    $forms['user_register'] = array(
-      'name' => 'user registration form',
-      'mode' => MOLLOM_MODE_CAPTCHA,
+  if (module_exists('contact')) {
+    $forms['contact_mail_page'] = array(
+      'name' => 'site-wide contact form',
+      'mode' => MOLLOM_MODE_ANALYSIS,
     );
 
-    $forms['user_pass'] = array(
-      'name' => 'user password request form',
-      'mode' => MOLLOM_MODE_CAPTCHA,
+    $forms['contact_mail_user'] = array(
+      'name' => 'per-user contact forms',
+      'mode' => MOLLOM_MODE_ANALYSIS,
     );
+  }
 
-    // Add all the node types:
-    $types = node_get_types('names');
-    foreach ($types as $type => $name) {
-      $forms[$type .'_node_form'] = array(
-        'name' => drupal_strtolower($name) .' form',
-        'mode' => MOLLOM_MODE_ANALYSIS,
-      );
-    }
+  $forms['user_register'] = array(
+    'name' => 'user registration form',
+    'mode' => MOLLOM_MODE_CAPTCHA,
+  );
+
+  $forms['user_pass'] = array(
+    'name' => 'user password request form',
+    'mode' => MOLLOM_MODE_CAPTCHA,
+  );
+
+  // Add all the node types:
+  $types = node_get_types('names');
+  foreach ($types as $type => $name) {
+    $forms[$type .'_node_form'] = array(
+      'name' => drupal_strtolower($name) .' form',
+      'mode' => MOLLOM_MODE_ANALYSIS,
+    );
   }
 
   return $forms;
