diff -urp date-original/date/date_repeat.inc date/date/date_repeat.inc --- date-original/date/date_repeat.inc 2009-02-21 06:53:25.000000000 -0600 +++ date/date/date_repeat.inc 2009-03-26 17:49:06.000000000 -0500 @@ -76,7 +76,11 @@ function _date_repeat_widget_validate($e if (empty($values['UNTIL']['datetime'])) { form_set_error($error_field, t('The UNTIL value is required for repeating dates.')); } + + // If errors have been set, clean up the form and return. if (form_get_errors()) { + $form_values[$field_name]['rrule'] = NULL; + form_set_value($element, array($form_values[$field_name]), $form_state); return; } diff -urp date-original/date_api_ical.inc date/date_api_ical.inc --- date-original/date_api_ical.inc 2009-02-21 06:53:25.000000000 -0600 +++ date/date_api_ical.inc 2009-03-26 17:28:05.000000000 -0500 @@ -649,7 +649,8 @@ function date_api_ical_build_rrule($form $RRULE .= ';BYMONTHDAY='. $BYMONTHDAY; } // The UNTIL date is supposed to always be expressed in UTC. - if (array_key_exists('UNTIL', $form_values) && array_key_exists('datetime', $form_values['UNTIL'])) { + // Do not add an UNTIL value if it's NULL + if (array_key_exists('UNTIL', $form_values) && array_key_exists('datetime', $form_values['UNTIL']) && $form_values['UNTIL']['datetime'] != NULL) { $until = date_ical_date($form_values['UNTIL'], 'UTC'); $RRULE .= ';UNTIL='. date_format($until, DATE_FORMAT_ICAL) .'Z'; }