diff --git a/configuration.module b/configuration.module
index 830d357..4c63810 100644
--- a/configuration.module
+++ b/configuration.module
@@ -34,7 +34,6 @@ function configuration_configuration_handlers() {
     'image_style'  => '\Drupal\configuration\Config\ImageStyleConfiguration',
     'text_format'  => '\Drupal\configuration\Config\TextFormatConfiguration',
     'variable'     => '\Drupal\configuration\Config\VariableConfiguration',
-    'permission'   => '\Drupal\configuration\Config\PermissionConfiguration',
     'vocabulary'   => '\Drupal\configuration\Config\VocabularyConfiguration',
     'menu'         => '\Drupal\configuration\Config\MenuConfiguration',
     'menu_link'    => '\Drupal\configuration\Config\MenuLinkConfiguration',
@@ -44,6 +43,7 @@ function configuration_configuration_handlers() {
     'wysiwyg'      => '\Drupal\configuration\Config\WysiwygConfiguration',
     'role_export'  => '\Drupal\configuration\Config\RoleConfiguration',
     'field_group'  => '\Drupal\configuration\Config\FieldGroupConfiguration',
+    'permission'   => '\Drupal\configuration\Config\PermissionConfiguration',
   );
 
   drupal_alter('configuration_handlers', $handlers);
diff --git a/lib/Drupal/configuration/Config/ConfigurationManagement.php b/lib/Drupal/configuration/Config/ConfigurationManagement.php
index 4c10ccc..e704d1c 100644
--- a/lib/Drupal/configuration/Config/ConfigurationManagement.php
+++ b/lib/Drupal/configuration/Config/ConfigurationManagement.php
@@ -97,6 +97,12 @@ class ConfigurationManagement {
     if (!isset($handlers)) {
       $handlers = module_invoke_all('configuration_handlers');
     }
+
+    // Permissions must be for last to avoid issues.
+    $temp = $handlers['permission'];
+    unset($handlers['permission']);
+    $handlers['permission'] = $temp;
+
     foreach ($handlers as $handler) {
       if ($skip_module_checking || $handler::isActive()) {
         foreach($handler::supportedComponents() as $component_name) {
