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	21 Jul 2009 01:31:08 -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.727
diff -p -u -p -r1.727 system.module
--- modules/system/system.module	20 Jul 2009 18:51:34 -0000	1.727
+++ modules/system/system.module	21 Jul 2009 01:31:11 -0000
@@ -210,7 +210,7 @@ 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 site-wide settings such as site information or module settings.'),
     ),
     'administer actions' => array(
       'title' => t('Administer actions'),
@@ -230,7 +230,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 +557,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 +568,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.
@@ -1174,7 +1178,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.57
diff -p -u -p -r1.57 system.test
--- modules/system/system.test	20 Jul 2009 18:51:34 -0000	1.57
+++ modules/system/system.test	21 Jul 2009 01:31:12 -0000
@@ -919,7 +919,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();
   }
