=== modified file 'sites/all/modules/contrib/mollom/mollom.module'
--- sites/all/modules/contrib/mollom/mollom.module  2010-06-18 13:10:41 +0000
+++ sites/all/modules/contrib/mollom/mollom.module  2010-07-09 11:36:34 +0000
@@ -524,7 +524,7 @@ function mollom_form_alter(&$form, &$for
   if (!user_access('bypass mollom protection')) {
     // Retrieve a list of all protected forms once.
     if (!isset($protected_forms)) {
-      $protected_forms = db_query("SELECT form_id, module FROM {mollom_form}")->fetchAllKeyed();
+      $protected_forms = mollom_protected_forms();
     }
     // Retrieve configuration for this form.
     if (isset($protected_forms[$form_id]) && $mollom_form = mollom_form_load($form_id)) {
@@ -587,6 +587,20 @@ function mollom_form_alter(&$form, &$for
 }
 
 /**
+ * Fetch all protected forms.
+ */
+function mollom_protected_forms() {
+  if ($cached = cache_get('mollom_protected_forms')) {
+    return $cached->data;
+  }
+  else {
+    $forms = db_query("SELECT form_id, module FROM {mollom_form}")->fetchAllKeyed();
+    cache_set('mollom_protected_forms', $forms);
+    return $forms;
+  }
+}
+
+/**
  * Returns a mapping of entity delete forms to registered Mollom form ids.
  *
  * @param $reset
@@ -702,20 +716,27 @@ function mollom_form_info($form_id, $mod
  * Menu argument loader; Loads Mollom configuration and form information for a given form id.
  */
 function mollom_form_load($form_id) {
-  $mollom_form = db_query_range('SELECT * FROM {mollom_form} WHERE form_id = :form_id', 0, 1, array(':form_id' => $form_id))->fetchAssoc();
-  if ($mollom_form) {
-    $mollom_form['enabled_fields'] = unserialize($mollom_form['enabled_fields']);
-    $mollom_form['data'] = unserialize($mollom_form['data']);
-
-    // Attach form registry information.
-    $mollom_form += mollom_form_info($form_id, $mollom_form['module']);
-
-    // Ensure default values (partially for administrative configuration).
-    $mollom_form += array(
-      'form_id' => $form_id,
-      'title' => $form_id,
-      'elements' => array(),
-    );
+  $cid = 'mollom:' . $form_id;
+  if ($cached = cache_get($cid)) {
+    return $cached->data;
+  }
+  else {
+    $mollom_form = db_query_range('SELECT * FROM {mollom_form} WHERE form_id = :form_id', 0, 1, array(':form_id' => $form_id))->fetchAssoc();
+    if ($mollom_form) {
+      $mollom_form['enabled_fields'] = unserialize($mollom_form['enabled_fields']);
+      $mollom_form['data'] = unserialize($mollom_form['data']);
+
+      // Attach form registry information.
+      $mollom_form += mollom_form_info($form_id, $mollom_form['module']);
+
+      // Ensure default values (partially for administrative configuration).
+      $mollom_form += array(
+        'form_id' => $form_id,
+        'title' => $form_id,
+        'elements' => array(),
+      );
+    }
+    cache_set($cid, $mollom_form);
   }
   return $mollom_form;
 }


