diff --git a/mollom.module b/mollom.module
index 93fdd3c..4f67a04 100644
--- a/mollom.module
+++ b/mollom.module
@@ -740,8 +740,8 @@ function mollom_form_alter(&$form, &$form_state, $form_id) {
       // Form-level validation handlers are required, since we need access to
       // all validated and submitted form values. _form_validate() invokes
       // #element_validate handlers while it is recursing into the form.
-      $form['#validate'][] = 'mollom_validate_analysis';
       $form['#validate'][] = 'mollom_validate_captcha';
+      $form['#validate'][] = 'mollom_validate_analysis';
       $form['#validate'][] = 'mollom_validate_post';
 
       // Append a submit handler to store Mollom session data. Requires that
@@ -1879,7 +1879,11 @@ function mollom_validate_analysis(&$form, &$form_state) {
         else {
           $form_state['mollom']['require_captcha'] = TRUE;
           $form_state['mollom']['passed_captcha'] = FALSE;
+
+          // Retrieve a new CAPTCHA and throw an error.
+          mollom_form_add_captcha($form['mollom'], $form_state);
           $form['mollom']['captcha']['#access'] = TRUE;
+          form_error($form['mollom']['captcha'], t('To complete this form, please complete the word verification below.'));
         }
         mollom_log(array(
           'message' => 'Unsure: %teaser',
@@ -1910,7 +1914,8 @@ function mollom_validate_analysis(&$form, &$form_state) {
  * text analysis result is "unsure".
  */
 function mollom_validate_captcha(&$form, &$form_state) {
-  if (!$form_state['mollom']['require_captcha']) {
+  $has_unsure_captcha = $form_state['mollom']['require_analysis'] && !empty($form_state['values']['mollom']['captchaId']);
+  if (!$has_unsure_captcha && !$form_state['mollom']['require_captcha']) {
     return;
   }
 
@@ -1976,6 +1981,9 @@ function mollom_validate_captcha(&$form, &$form_state) {
   $form['mollom']['captchaId']['#value'] = $result['captchaId'];
 
   if (!empty($result['solved'])) {
+    if ($form_state['mollom']['require_analysis']) {
+      $form['mollom']['captchaId']['#value'] = '';
+    }
     $form_state['mollom']['passed_captcha'] = TRUE;
     $form['mollom']['captcha']['#access'] = FALSE;
     $form['mollom']['captcha']['#solved'] = TRUE;
@@ -2019,8 +2027,8 @@ function mollom_pre_render_mollom($element) {
   $element['captcha']['#value'] = '';
 
   // DX: Debugging helpers.
-//  $element['captcha']['#suffix'] = 'contentId: ' . $element['contentId']['#value'];
-//  $element['captcha']['#suffix'] .= '<br />captchaId: ' . $element['captchaId']['#value'];
+  $element['#suffix'] = 'contentId: ' . $element['contentId']['#value'] . '<br>';
+  $element['#suffix'] .= 'captchaId: ' . $element['captchaId']['#value'] . '<br>';
 
   return $element;
 }
