diff --git a/src/Form/RenameAdminPathsSettingsForm.php b/src/Form/RenameAdminPathsSettingsForm.php
index e43becab80ff4e2175ad1ab9fdaa2e8ec44cd89b..defdb7fb36c65fdd1d20e5ba644d0b13743e632a 100644
--- a/src/Form/RenameAdminPathsSettingsForm.php
+++ b/src/Form/RenameAdminPathsSettingsForm.php
@@ -13,6 +13,7 @@ use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\rename_admin_paths\Config;
 use Drupal\rename_admin_paths\EventSubscriber\RenameAdminPathsEventSubscriber;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\views\Entity\View;
 
 /**
  * Settings form for the Rename Admin Paths module.
@@ -157,10 +158,21 @@ final class RenameAdminPathsSettingsForm extends ConfigFormBase {
   #[\Override]
   public function submitForm(array &$form, FormStateInterface $form_state): void {
     $this->saveConfiguration($form_state);
+    $dynamic_prefix = $form_state->getValue('admin_path_value');
 
     // At this stage we rebuild all routes to use the new renamed paths.
     $this->routeBuilder->rebuild();
 
+    // Check if the admin path has been disabled (unchecked).
+    if (!$form_state->getValue('admin_path')) {
+      // If the path is disabled, revert the views' paths to the original ones.
+      $this->updateOrRevertViewPaths(TRUE, $dynamic_prefix);
+    }
+    else {
+      // If enabled, update the views' paths to reflect the new value.
+      $this->updateOrRevertViewPaths(FALSE, $dynamic_prefix);
+    }
+
     // Add confirmation message.
     parent::submitForm($form, $form_state);
 
@@ -188,4 +200,56 @@ final class RenameAdminPathsSettingsForm extends ConfigFormBase {
     $this->config->save();
   }
 
+  /**
+   * Updates or reverts the view paths based on the given flag.
+   *
+   * @param bool $revert
+   *   If TRUE, reverts paths from the dynamic prefix to 'admin'.
+   *   If FALSE, updates paths from 'admin' to the dynamic prefix.
+   * @param string $dynamic_prefix
+   *   The dynamic prefix (e.g., 'backend') to use in the path.
+   */
+  private function updateOrRevertViewPaths(bool $revert = FALSE, string $dynamic_prefix): void {
+    // Load all views.
+    $views = View::loadMultiple();
+
+    // Iterate through all the views.
+    foreach ($views as $view) {
+      // Get the executable view object.
+      $executable = $view->getExecutable();
+
+      // Loop through all displays in the view.
+      foreach ($view->get('display') as $display_id => $display) {
+        // Check if the display has a path.
+        if (isset($display['display_options']['path'])) {
+          $current_path = $display['display_options']['path'];
+
+          // Modify the path based on whether we're updating or reverting.
+          if ($revert && strpos($current_path, $dynamic_prefix . '/') === 0) {
+            // Revert the dynamic prefix to 'admin'.
+            $new_path = str_replace($dynamic_prefix, 'admin', $current_path);
+          }
+          elseif (!$revert && strpos($current_path, 'admin/') === 0) {
+            // Update 'admin' to the dynamic prefix.
+            $new_path = str_replace('admin', $dynamic_prefix, $current_path);
+          }
+          else {
+            // Skip if no change is needed.
+            continue;
+          }
+
+          // Set the display and update the path.
+          $executable->setDisplay($display_id);
+          $executable->display_handler->setOption('path', $new_path);
+        }
+      }
+
+      // Save the updated view.
+      $view->save();
+    }
+
+    // Optionally clear the cache to ensure the changes are reflected.
+    \Drupal::cache()->deleteAll();
+  }
+
 }