diff --git a/form_mode_control.install b/form_mode_control.install
index 2ccfd1d..947079e 100644
--- a/form_mode_control.install
+++ b/form_mode_control.install
@@ -27,3 +27,17 @@ function form_mode_control_update_9001() {
     $config->save();
   }
 }
+
+/**
+ * Recalculate permission dependencies for form_mode_control.
+ */
+function form_mode_control_update_9002() {
+  // Load all roles.
+  $role_storage = \Drupal::entityTypeManager()->getStorage('user_role');
+  $roles = $role_storage->loadMultiple();
+
+  foreach ($roles as $role) {
+    // Simply re-save the role to trigger permission dependency recalculation.
+    $role->save();
+  }
+}
diff --git a/src/FormModePermission.php b/src/FormModePermission.php
index edc9b4b..d19222f 100644
--- a/src/FormModePermission.php
+++ b/src/FormModePermission.php
@@ -87,7 +87,17 @@ class FormModePermission implements ContainerInjectionInterface {
           '%bundle' => form_mode_control_get_bundle_label($entity_type, $bundle),
         ]);
 
-        $permissions[$permissions_key] = ['title' => $title];
+        $dependencies = [
+          'config' => [
+            'core.entity_form_display.' . $entity_type . '.' . $bundle . '.' . $form_mode_id,
+          ],
+        ];
+
+        $permissions[$permissions_key] = [
+          'title' => $title,
+          'dependencies' => $dependencies,
+        ];
+
         $to_add[$permissions_key] = $id_form_mode;
       }
     }
