summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/form.inc13
1 files changed, 9 insertions, 4 deletions
diff --git a/includes/form.inc b/includes/form.inc
index 35333e5fe..310270112 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':