diff --git mollom.module mollom.module
index 64c8f9c..c9c654c 100644
--- mollom.module
+++ mollom.module
@@ -1475,13 +1475,19 @@ function mollom_validate_analysis(&$form, &$form_state) {
         break;
 
       case MOLLOM_ANALYSIS_SPAM:
-        $form_state['mollom']['require_captcha'] = FALSE;
-        form_set_error('mollom', t('Your submission has triggered the spam filter and will not be accepted.'));
         _mollom_watchdog(array(
           'Spam: %teaser' => array('%teaser' => $teaser),
           'Data:<pre>@data</pre>' => array('@data' => $data),
           'Result:<pre>@result</pre>' => array('@result' => $result),
         ));
+        // Only throw a validation error and retrieve a CAPTCHA, if we check
+        // this post for the first time. Otherwise, mollom_validate_captcha()
+        // issued the CAPTCHA and needs to validate it prior to throwing any
+        // errors.
+        if (!$form_state['mollom']['require_captcha']) {
+          $form_state['mollom']['require_captcha'] = TRUE;
+          form_set_error('mollom][captcha', t('To complete this form, please complete the word verification below.'));
+        }
         break;
 
       case MOLLOM_ANALYSIS_UNSURE:
