diff --git modules/taxonomy/taxonomy.admin.inc modules/taxonomy/taxonomy.admin.inc
index ae5e85e..4f11498 100644
--- modules/taxonomy/taxonomy.admin.inc
+++ modules/taxonomy/taxonomy.admin.inc
@@ -431,6 +431,24 @@ function taxonomy_overview_terms_submit($form, &$form_state) {
     return;
   }
 
+  // Sort terms with the same weight alphabetically
+  $terms = array();
+  $weights = array();
+  $names = array();
+  foreach ($form_state['values'] as $key => $value) {
+    if (is_array($value) && array_key_exists('tid', $value)) {
+      // Move submitted terms out of the form into a temporary array
+      $terms[$key] = $value;
+      unset($form_state['values'][$key]);
+      // Put term weight and name in separate arrays, needed for multisort
+      $term = taxonomy_term_load($value['tid']);
+      $names[$key] = $term->name;
+      $weights[$key] = $value['weight'];
+    }
+  }
+  array_multisort($weights, SORT_ASC, $names, SORT_STRING, $terms);
+  $form_state['values'] = array_merge($form_state['values'], $terms);
+
   // Build a list of all terms that need to be updated on previous pages.
   $weight = 0;
   $term = (array) $tree[0];
