Index: modules/block/block.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.test,v
retrieving revision 1.22
diff -p -u -p -r1.22 block.test
--- modules/block/block.test	20 Jul 2009 18:51:32 -0000	1.22
+++ modules/block/block.test	30 Jul 2009 04:04:55 -0000
@@ -215,7 +215,7 @@ class NonDefaultBlockAdmin extends Drupa
    * Test non-default theme admin.
    */
   function testNonDefaultBlockAdmin() {
-    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration'));
+    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration', 'administer site themes'));
     $this->drupalLogin($admin_user);
     $this->drupalPost('admin/structure/themes', array('status[stark]' => 1), t('Save configuration'));
     $this->drupalGet('admin/structure/block/list/stark');
@@ -240,7 +240,7 @@ class NewDefaultThemeBlocks extends Drup
    */
   function testNewDefaultThemeBlocks() {
     // Create administrative user.
-    $admin_user = $this->drupalCreateUser(array('administer site configuration'));
+    $admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer site themes'));
     $this->drupalLogin($admin_user);
 
     // Ensure no other theme's blocks are in the block table yet.
@@ -274,7 +274,7 @@ class BlockAdminThemeTestCase extends Dr
   public static function getInfo() {
     return array(
       'name' => 'Admin theme block admin accessibility',
-      'description' => "Check whether the block administer page for a disabled theme acccessible if and only if it's the admin theme.",
+      'description' => "Check whether the block administer page for a disabled theme accessible if and only if it's the admin theme.",
       'group' => 'Block',
     );
   }
@@ -284,7 +284,7 @@ class BlockAdminThemeTestCase extends Dr
    */
   function testAdminTheme() {
     // Create administrative user.
-    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration'));
+    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration','administer site themes'));
     $this->drupalLogin($admin_user);
 
     // Ensure that access to block admin page is denied when theme is disabled.
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.729
diff -p -u -p -r1.729 system.module
--- modules/system/system.module	27 Jul 2009 19:53:18 -0000	1.729
+++ modules/system/system.module	30 Jul 2009 04:04:57 -0000
@@ -210,7 +210,11 @@ function system_permission() {
   return array(
     'administer site configuration' => array(
       'title' => t('Administer site configuration'),
-      'description' => t('Configure site-wide settings such as module or theme administration settings.'),
+      'description' => t('Configure module settings.'),
+    ),
+    'administer site information' => array(
+      'title' => t('Administer site information'),
+      'description' => t('Manage basic site information, such as the site name, slogan, and e-mail address.'),
     ),
     'administer actions' => array(
       'title' => t('Administer actions'),
@@ -230,7 +234,11 @@ function system_permission() {
     ),
     'select different theme' => array(
       'title' => t('Select different theme'),
-      'description' => t('Select a theme other than the default theme set by the site administrator.'),
+      'description' => t('Select a personal theme other than the default theme set by the site administrator.'),
+    ),
+    'administer site themes' => array(
+      'title' => t('Administer site themes'),
+      'description' => t('Choose the site theme and manage theme settings.'),
     ),
     'block IP addresses' => array(
       'title' => t('Block IP addresses'),
@@ -553,7 +561,7 @@ function system_menu() {
     'description' => 'Change which theme your site uses or allows users to set.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('system_themes_form'),
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer site themes'),
   );
   $items['admin/structure/themes/select'] = array(
     'title' => 'List',
@@ -564,7 +572,7 @@ function system_menu() {
   $items['admin/structure/themes/settings'] = array(
     'title' => 'Configure',
     'page arguments' => array('system_theme_settings'),
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer site themes'),
     'type' => MENU_LOCAL_TASK,
   );
   // Theme configuration subtabs.
@@ -688,7 +696,7 @@ function system_menu() {
     'description' => 'Change basic site information, such as the site name, slogan, e-mail address, mission, front page and more.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('system_site_information_settings'),
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer site information'),
   );
   $items['admin/settings/logging'] = array(
     'title' => 'Logging and errors',
@@ -1197,7 +1205,7 @@ function blocked_ip_load($iid) {
  * Menu item access callback - only admin or enabled themes can be accessed.
  */
 function _system_themes_access($theme) {
-  return user_access('administer site configuration') && ($theme->status || $theme->name == variable_get('admin_theme', 0));
+  return user_access('administer site themes') && ($theme->status || $theme->name == variable_get('admin_theme', 0));
 }
 
 /**
Index: modules/system/system.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.test,v
retrieving revision 1.59
diff -p -u -p -r1.59 system.test
--- modules/system/system.test	28 Jul 2009 19:06:16 -0000	1.59
+++ modules/system/system.test	30 Jul 2009 04:04:57 -0000
@@ -565,7 +565,7 @@ class AccessDeniedTestCase extends Drupa
     parent::setUp();
 
     // Create an administrative user.
-    $this->admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer blocks'));
+    $this->admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer blocks', 'administer site information'));
     $this->drupalLogin($this->admin_user);
   }
 
@@ -807,7 +807,7 @@ class FrontPageTestCase extends DrupalWe
     parent::setUp('system_test');
 
     // Create admin user, log in admin user, and create one node.
-    $this->admin_user = $this->drupalCreateUser(array('access content', 'administer site configuration'));
+    $this->admin_user = $this->drupalCreateUser(array('access content', 'administer site configuration', 'administer site information'));
     $this->drupalLogin($this->admin_user);
     $this->node_path = "node/" . $this->drupalCreateNode(array('promote' => 1))->nid;
 
@@ -990,7 +990,7 @@ class SystemThemeFunctionalTest extends 
   function setUp() {
     parent::setUp();
 
-    $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer site configuration', 'bypass node access'));
+    $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer site configuration', 'bypass node access', 'administer site themes'));
     $this->drupalLogin($this->admin_user);
     $this->node = $this->drupalCreateNode();
   }
