Index: captcha.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/captcha/captcha.module,v
retrieving revision 1.42.2.37
diff -u -F^f -r1.42.2.37 captcha.module
--- captcha.module	24 Oct 2007 20:15:11 -0000	1.42.2.37
+++ captcha.module	4 Nov 2007 01:27:03 -0000
@@ -413,6 +413,15 @@ function captcha_form_alter($form_id, &$
   if (!user_access('skip CAPTCHA')) {
     // Visitor does not have permission to skip the CAPTCHA
 
+    // Don't show captcha on initial comment form when preview is required
+    if ($form_id == 'comment_form') {
+      $op = isset($_POST['op']) ? $_POST['op'] : '';
+
+      if (($op == '') && ((variable_get('comment_preview', COMMENT_PREVIEW_REQUIRED) == COMMENT_PREVIEW_REQUIRED))) {
+        return;
+      }
+    }
+
     // Get CAPTCHA type and module for this form. Return if no CAPTCHA was set.
     $result = db_query("SELECT module, type FROM {captcha_points} WHERE form_id = '%s'", $form_id);
     if (!$result) {
@@ -545,6 +554,11 @@ function captcha_form_alter($form_id, &$
  * Implementation of form #validate.
  */
 function captcha_validate($form_values) {
+  // Don't show captcha on initial comment form when preview is required
+  if (($form_values['#post']['form_id'] == 'comment_form') && ($form_values['#post']['op'] == 'Preview comment')) {
+    return;
+  }
+
   // Get answer and preprocess if needed
   $captcha_response = $form_values['#post']['captcha_response'];
   $validationdata = $form_values['validationdata']['#value'];
