--- captcha.admin.inc	2010-09-26 18:05:46.000000000 -0500
+++ captcha.admin.inc	2010-12-14 11:29:33.000000000 -0600
@@ -212,13 +212,38 @@ function captcha_admin_settings(&$form_s
   );
 
   // Option for logging wrong responses.
-  $form['captcha_log_wrong_responses'] = array(
+  
+  $form['captcha_log_failures'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Log failures'),
+      '#description' =>  t('Report information about failed CAPTCHA responses to the !log.', array('!log' => l(t('log'), 'admin/reports/dblog'))),
+      '#attributes' => array('id' => 'edit-captcha-failures-wrapper'),
+  );
+
+  if (variable_get('captcha_log_wrong_responses', FALSE))
+  {
+     $wrongCount = db_fetch_array(db_query("select count(*) as cnt from {watchdog} where type = 'CAPTCHA'  AND severity = " . WATCHDOG_INFO));
+  }
+
+  $form['captcha_log_failures']['captcha_log_wrong_responses'] = array(
     '#type' => 'checkbox',
     '#title' => t('Log wrong responses'),
-    '#description' => t('Report information about wrong responses to the !log.', array('!log' => l(t('log'), 'admin/reports/dblog'))),
+    '#description' => t('Probably valid user. Currently: !wrongCount',  array('!wrongCount' => $wrongCount["cnt"])),
     '#default_value' => variable_get('captcha_log_wrong_responses', FALSE),
   );
 
+  if (variable_get('captcha_log_empty_responses', FALSE))
+  {
+     $emptyCount = db_fetch_array(db_query("select count(*) as cnt from {watchdog} where type = 'CAPTCHA'  AND severity = " . WATCHDOG_NOTICE));
+  }
+
+  $form['captcha_log_failures']['captcha_log_empty_responses'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Log empty responses'),
+    '#description' => t('Probably spammer. Currently: !emptyCount',  array('!emptyCount' => $emptyCount["cnt"])),
+    '#default_value' => variable_get('captcha_log_empty_responses', FALSE),
+  );
+
   // Submit button.
   $form['submit'] = array(
     '#type' => 'submit',
@@ -318,6 +343,7 @@ function captcha_admin_settings_submit($
   variable_set('captcha_default_validation', $form_state['values']['captcha_default_validation']);
   variable_set('captcha_persistence', $form_state['values']['captcha_persistence']);
   variable_set('captcha_log_wrong_responses', $form_state['values']['captcha_log_wrong_responses']);
+  variable_set('captcha_log_empty_responses', $form_state['values']['captcha_log_empty_responses']); 
 
   drupal_set_message(t('The CAPTCHA settings were saved.'), 'status');
 }
--- captcha.module	2010-10-31 05:01:50.000000000 -0500
+++ captcha.module	2010-12-14 11:30:09.000000000 -0600
@@ -575,7 +575,18 @@ function captcha_validate($element, &$fo
       // update wrong response counter
       variable_set('captcha_wrong_response_counter', variable_get('captcha_wrong_response_counter', 0) + 1);
       // log to watchdog if needed
-      if (variable_get('captcha_log_wrong_responses', FALSE)) {
+      if (variable_get('captcha_log_wrong_responses', FALSE) && $captcha_response) {
+        watchdog('CAPTCHA',
+          '%form_id post blocked by CAPTCHA module: challenge "%challenge" (by module "%module"), user answered "%response", but the solution was "%solution".',
+          array('%form_id' => $form_id,
+            '%response' => $captcha_response, '%solution' => $solution,
+            '%challenge' => $captcha_info['type'], '%module' => $captcha_info['module'],
+          ),
+          WATCHDOG_INFO
+        );
+      }
+
+      if (variable_get('captcha_log_empty_responses', FALSE) && !$captcha_response) {
         watchdog('CAPTCHA',
           '%form_id post blocked by CAPTCHA module: challenge "%challenge" (by module "%module"), user answered "%response", but the solution was "%solution".',
           array('%form_id' => $form_id,
