diff --git a/modules/contact/contact.test b/modules/contact/contact.test
index 6693b57..7ff0890 100644
--- a/modules/contact/contact.test
+++ b/modules/contact/contact.test
@@ -25,7 +25,7 @@ class ContactSitewideTestCase extends DrupalWebTestCase {
    */
   function testSiteWideContact() {
     // Create and login administrative user.
-    $admin_user = $this->drupalCreateUser(array('access site-wide contact form', 'administer contact forms', 'administer users'));
+    $admin_user = $this->drupalCreateUser(array('access site-wide contact form', 'administer contact forms', 'administer users', 'administer user settings'));
     $this->drupalLogin($admin_user);
 
     $flood_limit = 3;
@@ -315,7 +315,7 @@ class ContactPersonalTestCase extends DrupalWebTestCase {
     parent::setUp('contact');
 
     // Create an admin user.
-    $this->admin_user = $this->drupalCreateUser(array('administer contact forms', 'administer users'));
+    $this->admin_user = $this->drupalCreateUser(array('administer contact forms', 'administer users', 'administer user settings'));
 
     // Create some normal users with their contact forms enabled by default.
     variable_set('contact_default_status', TRUE);
diff --git a/modules/user/user.install b/modules/user/user.install
index b573e72..f7a4a03 100644
--- a/modules/user/user.install
+++ b/modules/user/user.install
@@ -911,5 +911,15 @@ function user_update_7018() {
 }
 
 /**
+ * Add fallback for new 'administer user settings' permission.
+ */
+function user_update_7019() {
+  $user_admin_roles = user_roles(FALSE, 'administer users');
+  foreach (array_keys($user_admin_roles) as $rid => $role) {
+    user_role_grant_permissions($rid, array('administer user settings'));
+  }
+}
+
+/**
  * @} End of "addtogroup updates-7.x-extra".
  */
diff --git a/modules/user/user.module b/modules/user/user.module
index 9637a71..4fe535b 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -881,6 +881,11 @@ function user_permission() {
       'title' => t('Administer users'),
       'restrict access' => TRUE,
     ),
+    'administer user settings' => array(
+      'title' => t('Administer user settings'),
+      'description' => t('Manage settings that apply to all user accounts.'),
+      'restrict access' => TRUE,
+    ),
     'access user profiles' => array(
       'title' => t('View user profiles'),
     ),
@@ -1772,7 +1777,7 @@ function user_menu() {
     'description' => 'Configure default behavior of users, including registration requirements, e-mails, fields, and user pictures.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('user_admin_settings'),
-    'access arguments' => array('administer users'),
+    'access arguments' => array('administer user settings'),
     'file' => 'user.admin.inc',
     'weight' => -10,
   );
diff --git a/modules/user/user.test b/modules/user/user.test
index 07be4c2..c9d495a 100644
--- a/modules/user/user.test
+++ b/modules/user/user.test
@@ -1286,7 +1286,7 @@ class UserPictureTestCase extends DrupalWebTestCase {
    * Tests the admin form validates user picture settings.
    */
   function testUserPictureAdminFormValidation() {
-    $this->drupalLogin($this->drupalCreateUser(array('administer users')));
+    $this->drupalLogin($this->drupalCreateUser(array('administer users', 'administer user settings')));
 
     // The default values are valid.
     $this->drupalPost('admin/config/people/accounts', array(), t('Save configuration'));
@@ -1317,7 +1317,7 @@ class UserPermissionsTestCase extends DrupalWebTestCase {
   function setUp() {
     parent::setUp();
 
-    $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'access user profiles', 'administer site configuration', 'administer modules', 'administer users'));
+    $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'access user profiles', 'administer site configuration', 'administer modules', 'administer users', 'administer user settings'));
 
     // Find the new role ID - it must be the maximum.
     $all_rids = array_keys($this->admin_user->roles);
