diff --git a/includes/form.inc b/includes/form.inc index 35333e5fec3cd3c185a1087bdc134296896ad90c..3102701123451322fa888120e2237b81fa8756ce 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -344,11 +344,16 @@ function form_builder($form_id, $form) { $form['#value'] = !empty($edit) ? $form['#return_value'] : 0; break; case 'select': - if (isset($edit)) { - $form['#value'] = $edit; + if (isset($form['#multiple']) && $form['#multiple']) { + if (isset($edit) && is_array($edit)) { + $form['#value'] = drupal_map_assoc($edit); + } + else { + $form['#value'] = array(); + } } - elseif (isset($form['#multiple']) && $form['#multiple']) { - $form['#value'] = array(); + elseif (isset($edit)) { + $form['#value'] = $edit; } break; case 'textfield':