Index: modules/user/user.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v
retrieving revision 1.25
diff -u -p -r1.25 user.admin.inc
--- modules/user/user.admin.inc	6 Sep 2008 08:36:22 -0000	1.25
+++ modules/user/user.admin.inc	11 Sep 2008 14:50:37 -0000
@@ -15,7 +15,7 @@ function user_admin($callback_arg = '') 
       $output = drupal_get_form('user_register');
       break;
     default:
-      if (!empty($_POST['accounts']) && isset($_POST['operation']) && ($_POST['operation'] == 'delete')) {
+      if (!empty($_POST['accounts']) && isset($_POST['operation']) && ($_POST['operation'] == 'delete') && empty($_POST['accounts'][1])) {
         $output = drupal_get_form('user_multiple_delete_confirm');
       }
       else {
@@ -220,6 +220,12 @@ function user_admin_account_validate($fo
   if (count($form_state['values']['accounts']) == 0) {
     form_set_error('', t('No users selected.'));
   }
+  if ($form_values['operation'] == 'delete') {
+    if (!empty($form_values['accounts'][1])) {
+      $user = user_load(1);
+      form_set_error('', t('%name is the superuser and cannot be deleted.', array('%name' => $user->name)));
+    }
+  }
 }
 
 /**
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.919
diff -u -p -r1.919 user.module
--- modules/user/user.module	8 Sep 2008 15:44:57 -0000	1.919
+++ modules/user/user.module	11 Sep 2008 14:50:37 -0000
@@ -908,6 +908,10 @@ function user_edit_access($account) {
   return (($GLOBALS['user']->uid == $account->uid) || user_access('administer users')) && $account->uid > 0;
 }
 
+function user_delete_access($account) {
+  return ($account->uid > 1 && user_access('administer users'));
+}
+
 function user_load_self($arg) {
   $arg[1] = user_load($GLOBALS['user']->uid);
   return $arg;
@@ -1046,8 +1050,8 @@ function user_menu() {
     'title' => 'Delete',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('user_confirm_delete', 1),
-    'access callback' => 'user_access',
-    'access arguments' => array('administer users'),
+    'access callback' => 'user_delete_access',
+    'access arguments' => array(1),
     'type' => MENU_CALLBACK,
   );
 
Index: modules/user/user.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.pages.inc,v
retrieving revision 1.16
diff -u -p -r1.16 user.pages.inc
--- modules/user/user.pages.inc	6 Sep 2008 08:36:22 -0000	1.16
+++ modules/user/user.pages.inc	11 Sep 2008 14:50:37 -0000
@@ -238,7 +238,7 @@ function user_profile_form($form_state, 
   $form['_category'] = array('#type' => 'value', '#value' => $category);
   $form['_account'] = array('#type' => 'value', '#value' => $account);
   $form['submit'] = array('#type' => 'submit', '#value' => t('Save'), '#weight' => 30);
-  if (user_access('administer users')) {
+  if (user_access('administer users') && $account->uid != 1) {
     $form['delete'] = array(
       '#type' => 'submit',
       '#value' => t('Delete'),
