diff --git a/mollom.module b/mollom.module
index 17e6468..62ac82d 100644
--- a/mollom.module
+++ b/mollom.module
@@ -1897,7 +1897,9 @@ function mollom_form_add_captcha(&$element, &$form_state) {
 /**
  * Form validation handler to perform textual analysis on submitted form values.
  */
-function mollom_validate_analysis(&$form, &$form_state) {
+function mollom_validate_analysis($form_copy, &$form_state) {
+  $form = &$form_state['complete form'];
+
   if (!$form_state['mollom']['require_analysis']) {
     return;
   }
@@ -1945,7 +1947,7 @@ function mollom_validate_analysis(&$form, &$form_state) {
   // Ensure the latest content ID is output as value.
   // form_set_value() is effectless, as this is not a element-level but a
   // form-level validation handler.
-  $form_state['complete form']['mollom']['contentId']['#value'] = $result['contentId'];
+  $form['mollom']['contentId']['#value'] = $result['contentId'];
 
   // Prepare watchdog message teaser text.
   $teaser = '--';
@@ -1980,7 +1982,7 @@ function mollom_validate_analysis(&$form, &$form_state) {
     switch ($result['spamClassification']) {
       case 'ham':
         $form_state['mollom']['require_captcha'] = FALSE;
-        $form_state['complete form']['mollom']['captcha']['#access'] = FALSE;
+        $form['mollom']['captcha']['#access'] = FALSE;
         mollom_log(array(
           'message' => 'Ham: %teaser',
           'arguments' => array('%teaser' => $teaser),
@@ -1989,7 +1991,7 @@ function mollom_validate_analysis(&$form, &$form_state) {
 
       case 'spam':
         $form_state['mollom']['require_captcha'] = FALSE;
-        $form_state['complete form']['mollom']['captcha']['#access'] = FALSE;
+        $form['mollom']['captcha']['#access'] = FALSE;
         if ($form_state['mollom']['discard']) {
           form_set_error('mollom', t('Your submission has triggered the spam filter and will not be accepted.') . ' ' . _mollom_format_message_falsepositive($form_state, $data));
         }
@@ -2009,7 +2011,7 @@ function mollom_validate_analysis(&$form, &$form_state) {
         else {
           $form_state['mollom']['require_captcha'] = TRUE;
           $form_state['mollom']['passed_captcha'] = FALSE;
-          $form_state['complete form']['mollom']['captcha']['#access'] = TRUE;
+          $form['mollom']['captcha']['#access'] = TRUE;
         }
         mollom_log(array(
           'message' => 'Unsure: %teaser',
@@ -2039,14 +2041,16 @@ function mollom_validate_analysis(&$form, &$form_state) {
  * CAPTCHA, if it was configured to be protected by a CAPTCHA only, or when the
  * text analysis result is "unsure".
  */
-function mollom_validate_captcha(&$form, &$form_state) {
+function mollom_validate_captcha($form_copy, &$form_state) {
+  $form = &$form_state['complete form'];
+
   if (!$form_state['mollom']['require_captcha']) {
     return;
   }
 
   // If there is no CAPTCHA ID yet, retrieve one and throw an error.
   if (empty($form_state['values']['mollom']['captchaId'])) {
-    mollom_form_add_captcha($form_state['complete form']['mollom'], $form_state);
+    mollom_form_add_captcha($form['mollom'], $form_state);
     form_error($form['mollom']['captcha'], t('To complete this form, please complete the word verification below.'));
     return;
   }
@@ -2058,8 +2062,8 @@ function mollom_validate_captcha(&$form, &$form_state) {
   // primary 'require_captcha' condition will not be TRUE unless needed in the
   // first place.
   if ($form_state['mollom']['passed_captcha']) {
-    $form_state['complete form']['mollom']['captcha']['#access'] = FALSE;
-    $form_state['complete form']['mollom']['captcha']['#solved'] = TRUE;
+    $form['mollom']['captcha']['#access'] = FALSE;
+    $form['mollom']['captcha']['#solved'] = TRUE;
     return;
   }
 
@@ -2103,12 +2107,12 @@ function mollom_validate_captcha(&$form, &$form_state) {
   // Ensure the latest CAPTCHA ID is output as value.
   // form_set_value() is effectless, as this is not a element-level but a
   // form-level validation handler.
-  $form_state['complete form']['mollom']['captchaId']['#value'] = $result['captchaId'];
+  $form['mollom']['captchaId']['#value'] = $result['captchaId'];
 
   if (!empty($result['solved'])) {
     $form_state['mollom']['passed_captcha'] = TRUE;
-    $form_state['complete form']['mollom']['captcha']['#access'] = FALSE;
-    $form_state['complete form']['mollom']['captcha']['#solved'] = TRUE;
+    $form['mollom']['captcha']['#access'] = FALSE;
+    $form['mollom']['captcha']['#solved'] = TRUE;
 
     mollom_log(array(
       'message' => 'Correct CAPTCHA',
@@ -2117,7 +2121,7 @@ function mollom_validate_captcha(&$form, &$form_state) {
   else {
     $form_state['mollom']['passed_captcha'] = FALSE;
     form_set_error('mollom][captcha', t('The word verification was not completed correctly. Please complete this new word verification and try again.') . ' ' . _mollom_format_message_falsepositive($form_state, $data));
-    mollom_form_add_captcha($form_state['complete form']['mollom'], $form_state);
+    mollom_form_add_captcha($form['mollom'], $form_state);
 
     mollom_log(array(
       'message' => 'Incorrect CAPTCHA',
