diff --git modules/node/node.module modules/node/node.module
index dd759bb..66b9ad8 100644
--- modules/node/node.module
+++ modules/node/node.module
@@ -2910,7 +2910,6 @@ function node_list_permissions($type) {
  *   An array of node types managed by this module.
  */
 function node_permissions_get_configured_types() {
-
   $configured_types = array();
 
   foreach (node_type_get_types() as $type => $info) {
diff --git modules/user/user.module modules/user/user.module
index 41aca9b..c08afe9 100644
--- modules/user/user.module
+++ modules/user/user.module
@@ -3473,18 +3473,7 @@ function user_register_submit($form, &$form_state) {
  */
 function user_modules_installed($modules) {
   // Assign all available permissions to the administrator role.
-  $rid = variable_get('user_admin_role', 0);
-  if ($rid) {
-    $permissions = array();
-    foreach ($modules as $module) {
-      if ($module_permissions = module_invoke($module, 'permission')) {
-        $permissions = array_merge($permissions, array_keys($module_permissions));
-      }
-    }
-    if (!empty($permissions)) {
-      user_role_grant_permissions($rid, $permissions);
-    }
-  }
+  user_administrator_reset($modules);
 }
 
 /**
@@ -3554,3 +3543,45 @@ function user_rdf_mapping() {
     ),
   );
 }
+
+/**
+ * Reset the permissions for the administrator role.
+ *
+ * This function needs to be called any time the list of permissions is
+ * updated, such as when a module is enabled or when a node type is created.
+ *
+ * @param $modules
+ *   Optionally, a list of modules for which to grant permission for the
+ *   administrator role.
+ */
+function user_administrator_reset($modules = NULL) {
+  $rid = variable_get('user_admin_role', 0);
+  if ($rid) {
+    if (!$modules) {
+      $modules = module_list();
+    }
+    $permissions = array();
+    foreach ($modules as $module) {
+      if ($module_permissions = module_invoke($module, 'permission')) {
+        $permissions = array_merge($permissions, array_keys($module_permissions));
+      }
+    }
+    if (!empty($permissions)) {
+      user_role_grant_permissions($rid, $permissions);
+    }
+  }
+}
+
+/**
+ * Implements hook_node_type_insert().
+ */
+function user_node_type_insert($type) {
+  user_administrator_reset();
+}
+
+/**
+ * Implements hook_node_type_update().
+ */
+function user_node_type_update() {
+  user_administrator_reset();
+}
diff --git modules/user/user.test modules/user/user.test
index 30572cb..50e968b 100644
--- modules/user/user.test
+++ modules/user/user.test
@@ -1000,6 +1000,9 @@ class UserPermissionsTestCase extends DrupalWebTestCase {
     $edit['modules[Core][aggregator][enable]'] = TRUE;
     $this->drupalPost('admin/modules', $edit, t('Save configuration'));
     $this->assertTrue(user_access('administer news feeds', $this->admin_user), t('The permission was automatically assigned to the administrator role'));
+
+    $type = $this->drupalCreateContentType();
+    $this->assertTrue(user_access('delete any ' . $type->type . ' content', $this->admin_user), t('The permission was automatically assigned to the administrator role'));
   }
 
   /**
