diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index 0596bde..992f9f3 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -863,6 +863,9 @@ function user_admin_roles($form, $form_state) {
     '#type' => 'submit',
     '#value' => t('Save order'),
     '#submit' => array('user_admin_roles_order_submit'),
+    // Keep array('rid') for passing rid of the role
+    // to delete confirmation form
+    '#limit_validation_errors' => array(array('rid')),
   );
 
   return $form;
diff --git a/modules/user/user.test b/modules/user/user.test
index 3c453a8..5eeb5c4 100644
--- a/modules/user/user.test
+++ b/modules/user/user.test
@@ -1816,6 +1816,11 @@ class UserRoleAdminTestCase extends DrupalWebTestCase {
     $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'));
