diff --git a/mollom.api.php b/mollom.api.php
index 30ae9d5..4054de8 100644
--- a/mollom.api.php
+++ b/mollom.api.php
@@ -297,6 +297,10 @@ function hook_mollom_form_list() {
  *     Mollom' link will be included at the bottom of the mail body. Be sure to
  *     include only user-submitted mails and not any mails sent by Drupal since
  *     they should never be reported as spam.
+ *   - form submit array parents: (optional) An array specifying the
+ *     #array_parents of a submit button in the protected add/edit form to
+ *     attach Mollom's #submit handlers to. Defaults to an empty array; i.e.,
+ *     submit handlers are attached to $form['#submit'].
  *   - elements: (optional) An associative array of elements in the form that
  *     can be configured for Mollom's text analysis. The site administrator can
  *     only select the form elements to process (and exclude certain elements)
diff --git a/mollom.module b/mollom.module
index 0636d4e..1d766f4 100644
--- a/mollom.module
+++ b/mollom.module
@@ -665,8 +665,8 @@ function mollom_form_alter(&$form, &$form_state, $form_id) {
       //   no #post_submit property or form processing phase, we could rely on.
       //   Potentially applies to other contrib entities, too.
       // @see http://drupal.org/node/1150756
-      if (isset($form_state['build_info']['base_form_id']) && $form_state['build_info']['base_form_id'] == 'node_form') {
-        $form_submit_key = &$form['actions']['submit'];
+      if (!empty($mollom_form['form submit array parents'])) {
+        $form_submit_key = drupal_array_get_nested_value($form, $mollom_form['form submit array parents']);
       }
       else {
         $form_submit_key = &$form;
@@ -830,6 +830,7 @@ function mollom_form_info($form_id, $module) {
     'mode' => NULL,
     'discard' => TRUE,
     'bypass access' => array(),
+    'form submit array parents' => array(),
     'elements' => array(),
     'mapping' => array(),
     'mail ids' => array(),
@@ -2290,6 +2291,7 @@ function node_mollom_form_info($form_id) {
     // @todo This is incompatible with node access.
     'bypass access' => array('bypass node access'),
     'bundle' => $type->type,
+    'form submit array parents' => array('actions', 'submit'),
     'moderation callback' => 'node_mollom_form_moderation',
     'elements' => array(),
     'mapping' => array(
