=== modified file 'includes/form.inc'
--- includes/form.inc	
+++ includes/form.inc	
@@ -869,6 +869,9 @@ function form_select_options($element, $
       $options .= form_select_options($element, $choice);
       $options .= '</optgroup>';
     }
+    elseif (is_object($choice)) {
+      $options .= form_select_options($element, $choice->option);
+    }
     else {
       $key = (string)$key;
       if ($value_valid && ($element['#value'] == $key || ($value_is_array && in_array($key, $element['#value'])))) {
=== modified file 'modules/taxonomy/taxonomy.module'
--- modules/taxonomy/taxonomy.module	
+++ modules/taxonomy/taxonomy.module	
@@ -1062,7 +1062,9 @@ function _taxonomy_term_select($title, $
   if ($tree) {
     foreach ($tree as $term) {
       if (!in_array($term->tid, $exclude)) {
-        $options[$term->tid] = str_repeat('-', $term->depth) . $term->name;
+        $choice = new stdClass();
+        $choice->option = array($term->tid => str_repeat('-', $term->depth) . $term->name);
+        $options[microtime()] = $choice;
       }
     }
     if (!$blank && !$value) {
@@ -1308,7 +1310,7 @@ function taxonomy_admin_term_edit($tid) 
     return drupal_get_form('taxonomy_term_confirm_delete', $tid);
   }
   if ($term = (array)taxonomy_get_term($tid)) {
-    return drupal_get_form('taxonomy_form_term', $term->vid, $term);
+    return drupal_get_form('taxonomy_form_term', $term['vid'], $term);
   }
   return drupal_not_found();
 }
