diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 452349a96a4268e6df1beeace827f066bc11aec5..9c59fa4c208c2bf30a55da0ead686f71943135ca 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -29,6 +29,8 @@ Drupal 7.0, xxxx-xx-xx (development version)
       order can now be customised using the Views module.
     * Added additional features to the default install profile, and implemented
       a "slimmed down" install profile designed for developers.
+    * Added an administrator role which is assigned all permisions for
+      installed modules automatically.
     * Image toolkits are now provided by modules (rather than requiring a manual
       file copy to the includes directory).
     * Added an edit tab to taxonomy term pages.
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index 303d2ff0a07e5adc9e060c353768fae757c506db..f5f6117f4cc4247def2b3676e538efa4c7e2c4af 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -254,10 +254,10 @@ function user_admin_settings() {
   // Administrative role option.
   $form['admin_role'] = array(
     '#type' => 'fieldset',
-    '#title' => t ('Administrator role'),
+    '#title' => t('Administrator role'),
   );
 
-  // Don't allow users to set the anonymous or authenticated user roles as the
+  // Do not allow users to set the anonymous or authenticated user roles as the
   // administrator role.
   $roles = user_roles();
   $roles = array_slice($roles, 2, NULL, TRUE);
@@ -944,7 +944,7 @@ function user_modules_installed($modules) {
           db_insert('role_permission')
             ->fields(array(
               'rid' => $rid,
-               'permission' => $permission,
+              'permission' => $permission,
             ))->execute();
         }
       }
diff --git a/profiles/default/default.profile b/profiles/default/default.profile
index d75e878c4ebbe6ad2088c331837ff3e1dd912290..2bab8f8354dede989c032e86b866d38847ed063f 100644
--- a/profiles/default/default.profile
+++ b/profiles/default/default.profile
@@ -221,16 +221,12 @@ function default_profile_tasks(&$task, $url) {
   variable_set('user_admin_role', $rid);
 
   // Assign all available permissions to this role.
-  foreach (module_implements('perm') as $module) {
-    if ($permissions = module_invoke($module, 'perm')) {
-      foreach (array_keys($permissions) as $permission) {
-        db_insert('role_permission')
-          ->fields(array(
-            'rid' => $rid,
-             'permission' => $permission,
-          ))->execute();
-      }
-    }
+  foreach (module_invoke_all('perm') as $key => $value) {
+    db_insert('role_permission')
+      ->fields(array(
+        'rid' => $rid,
+        'permission' => $key,
+      ))->execute();
   }
 
   // Update the menu router information.