Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.1204
diff -u -r1.1204 common.inc
--- includes/common.inc	10 Aug 2010 01:00:42 -0000	1.1204
+++ includes/common.inc	10 Aug 2010 19:39:19 -0000
@@ -5434,6 +5434,15 @@
 }
 
 /**
+ * Array sorting callback; sorts elements by title.
+ */
+function element_sort_by_title($a, $b) {
+  $a_title = (is_array($a) && isset($a['#title'])) ? $a['#title'] : '';
+  $b_title = (is_array($b) && isset($b['#title'])) ? $b['#title'] : '';
+  return strnatcasecmp($a_title, $b_title);
+}
+
+/**
  * Retrieve the default properties for the defined element type.
  */
 function element_info($type) {
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.293
diff -u -r1.293 system.admin.inc
--- modules/system/system.admin.inc	28 Jul 2010 02:57:36 -0000	1.293
+++ modules/system/system.admin.inc	10 Aug 2010 19:39:20 -0000
@@ -954,8 +954,22 @@
         array('data' => t('Operations'), 'colspan' => 3),
       ),
     );
+
+    // Ensure that the "Core" package fieldset comes first
+    // and the "Other" package fieldset comes last.
+    switch ($package) {
+      case 'Core':
+        $form['modules'][$package]['#weight'] = -10;
+        break;
+      case 'Other':
+        $form['modules'][$package]['#weight'] = 10;
+        break;
+    }
   }
 
+  // Lastly, sort all fieldsets by title.
+  uasort($form['modules'], 'element_sort_by_title');
+
   $form['actions'] = array('#type' => 'actions');
   $form['actions']['submit'] = array(
     '#type' => 'submit',
