Index: modules/user/user.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.admin.inc,v
retrieving revision 1.120
diff -u -p -r1.120 user.admin.inc
--- modules/user/user.admin.inc	20 Oct 2010 01:31:07 -0000	1.120
+++ modules/user/user.admin.inc	22 Oct 2010 19:00:03 -0000
@@ -959,6 +959,9 @@ function user_admin_role($form, $form_st
     '#type' => 'submit',
     '#value' => t('Delete role'),
     '#submit' => array('user_admin_role_delete_submit'),
+    // Keep array('rid') for passing rid of the role
+    // to delete confirmation form
+    '#limit_validation_errors' => array(array('rid')),
   );
 
   return $form;
Index: modules/user/user.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.test,v
retrieving revision 1.103
diff -u -p -r1.103 user.test
--- modules/user/user.test	11 Oct 2010 19:43:23 -0000	1.103
+++ modules/user/user.test	22 Oct 2010 19:00:05 -0000
@@ -1647,6 +1647,11 @@ class UserRoleAdminTestCase extends Drup
     $this->assertFalse(user_role_load_by_name($old_name), t('The role can no longer be retrieved from the database using its old name.'));
     $this->assertTrue(is_object(user_role_load_by_name($role_name)), t('The role can be retrieved from the database using its new name.'));
 
+    // Test submit edit role form with empty role name.
+    $edit = array('name' => '');
+    $this->drupalPost("admin/people/permissions/roles/edit/{$role->rid}", $edit, t('Delete role'));
+    $this->assertNoText(t('Role name field is required.'), t('Role can be deleted with empty name submitted to the form.'));
+
     // Test deleting a role.
     $this->drupalPost("admin/people/permissions/roles/edit/{$role->rid}", NULL, t('Delete role'));
     $this->drupalPost(NULL, NULL, t('Delete'));
