diff --git a/includes/form.inc b/includes/form.inc index e749239ef..c265e5466 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -1387,7 +1387,10 @@ function _form_validate(&$elements, &$form_state, $form_id = NULL) { // identical to the empty option's value, we reset the element's value // to NULL to trigger the regular #required handling below. // @see form_process_select() - elseif ($elements['#type'] == 'select' && !$elements['#multiple'] && $elements['#required'] && !isset($elements['#default_value']) && $elements['#value'] === $elements['#empty_value']) { + elseif ($elements['#type'] == 'select' && $elements['#required'] + && (!array_key_exists('#multiple', $elements) || !$elements['#multiple']) + && !isset($elements['#default_value']) + && $elements['#value'] === $elements['#empty_value']) { $elements['#value'] = NULL; form_set_value($elements, NULL, $form_state); }