Index: modules/taxonomy/taxonomy.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.admin.inc,v
retrieving revision 1.101
diff -u -p -r1.101 taxonomy.admin.inc
--- modules/taxonomy/taxonomy.admin.inc	13 Apr 2010 15:23:03 -0000	1.101
+++ modules/taxonomy/taxonomy.admin.inc	23 Apr 2010 00:04:45 -0000
@@ -391,7 +391,7 @@ function taxonomy_overview_terms($form, 
     );
     $form['reset_alphabetical'] = array(
       '#type' => 'submit',
-      '#value' => t('Reset to alphabetical')
+      '#value' => t('Sort alphabetically')
     );
     $form_state['redirect'] = array($_GET['q'], (isset($_GET['page']) ? array('query' => array('page' => $_GET['page'])) : array()));
   }
@@ -415,7 +415,7 @@ function taxonomy_overview_terms($form, 
  * @see taxonomy_overview_terms()
  */
 function taxonomy_overview_terms_submit($form, &$form_state) {
-  if ($form_state['clicked_button']['#value'] == t('Reset to alphabetical')) {
+  if ($form_state['clicked_button']['#value'] == t('Sort alphabetically')) {
     // Execute the reset action.
     if ($form_state['values']['reset_alphabetical'] === TRUE) {
       return taxonomy_vocabulary_confirm_reset_alphabetical_submit($form, $form_state);
@@ -624,9 +624,15 @@ function taxonomy_form_term($form, &$for
     'format' => filter_default_format(),
     'vocabulary_machine_name' => $vocabulary->machine_name,
     'tid' => NULL,
-    'weight' => 0,
+    'weight' => NULL,
   );
 
+  // Add a default weight for new terms.
+  if (!isset($edit['weight'])) {
+    $max_weight = db_query("SELECT MAX(weight) FROM {taxonomy_term_data} WHERE vid = :vid", array(':vid' => $vocabulary->vid))->fetchField();
+    $edit['weight'] = isset($max_weight) ? $max_weight + 1 : 0;
+  }
+
   // Take into account multi-step rebuilding.
   if (isset($form_state['term'])) {
     $edit = $form_state['term'] + $edit;
@@ -962,8 +968,8 @@ function taxonomy_vocabulary_confirm_res
                   t('Are you sure you want to reset the vocabulary %title to alphabetical order?',
                   array('%title' => $vocabulary->name)),
                   'admin/structure/taxonomy/' . $vocabulary->machine_name,
-                  t('Resetting a vocabulary will discard all custom ordering and sort items alphabetically.'),
-                  t('Reset to alphabetical'),
+                  t('Sorting a vocabulary will discard all custom ordering and sort items alphabetically.'),
+                  t('Sort alphabetically'),
                   t('Cancel'));
 }
 
@@ -977,7 +983,7 @@ function taxonomy_vocabulary_confirm_res
     ->fields(array('weight' => 0))
     ->condition('vid', $form_state['values']['vid'])
     ->execute();
-  drupal_set_message(t('Reset vocabulary %name to alphabetical order.', array('%name' => $form_state['values']['name'])));
-  watchdog('taxonomy', 'Reset vocabulary %name to alphabetical order.', array('%name' => $form_state['values']['name']), WATCHDOG_NOTICE);
+  drupal_set_message(t('Sorted vocabulary %name in alphabetical order.', array('%name' => $form_state['values']['name'])));
+  watchdog('taxonomy', 'Sorted vocabulary %name in alphabetical order.', array('%name' => $form_state['values']['name']), WATCHDOG_NOTICE);
   $form_state['redirect'] = 'admin/structure/taxonomy/' . $form_state['values']['machine_name'];
 }
