--- ./captcha.inc.orig 2009-06-19 15:04:00.000000000 +0200 +++ ./captcha.inc 2009-07-19 20:28:30.000000000 +0200 @@ -111,6 +111,9 @@ function _captcha_required_for_user($captcha_sid, $form_id) { $captcha_session_status = db_result(db_query("SELECT status FROM {captcha_sessions} WHERE csid = %d", $captcha_sid)); + if (!isset($_SESSION['captcha_success_form_ids'])) { + $_SESSION['captcha_success_form_ids'] = array(); + } $captcha_success_form_ids = (array)($_SESSION['captcha_success_form_ids']); switch (variable_get('captcha_persistence', CAPTCHA_PERSISTENCE_SHOW_ALWAYS)) { case CAPTCHA_PERSISTENCE_SKIP_ONCE_SUCCESSFUL: --- ./captcha.module.orig 2009-07-03 01:45:05.000000000 +0200 +++ ./captcha.module 2009-07-30 21:15:52.000000000 +0200 @@ -249,7 +249,7 @@ 'module' => $captcha_type_module, 'type' => $captcha_type_challenge, 'captcha_sid' => $captcha_sid, - 'solution' => $captcha['solution'], + 'solution' => isset($captcha['solution']) ? $captcha['solution'] : '', ); return $element; @@ -408,7 +408,7 @@ // However, they will differ when the lifespan of the CAPTCHA session // does not equal the lifespan of a multipage form and then we have to // pick the right one. - $csid = $form_state['clicked_button']['#post']['captcha_sid']; + $csid = isset($form_state['clicked_button']['#post']['captcha_sid']) ? $form_state['clicked_button']['#post']['captcha_sid'] : 0; $solution = db_result(db_query('SELECT solution FROM {captcha_sessions} WHERE csid = %d AND status = %d', $csid, CAPTCHA_STATUS_UNSOLVED));