diff --git a/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php b/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php
index 5a3b3e4a8049bd2e253d104e037fe87f7f1ee01a..d4eac9641a72560400f59f018ac0b1cae404f09b 100644
--- a/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php
+++ b/src/Theme/VarbaseLayoutBuilderThemeNegotiator.php
@@ -75,7 +75,7 @@ class VarbaseLayoutBuilderThemeNegotiator extends AjaxBasePageNegotiator {
     if (isset($use_claro) && $use_claro == 1) {
 
       $route_name = $route_match->getRouteName();
-      if (isset($route_name) && strpos($route_name, 'layout_builder') !== FALSE) {
+      if (varbase_layout_builder__is_layout_builder_route()) {
         if ($this->themeHandler->themeExists('gin') || $this->themeHandler->themeExists('claro')) {
           return TRUE;
         }
diff --git a/varbase_layout_builder.module b/varbase_layout_builder.module
index 17e6f673e29c104b50e41da7e006af1a53149f06..0bcc524bf6d8dc5a2ceb82132bf36c766836e51c 100644
--- a/varbase_layout_builder.module
+++ b/varbase_layout_builder.module
@@ -352,3 +352,22 @@ function varbase_layout_builder_library_info_alter(&$libraries, $extension) {
 
   }
 }
+
+function varbase_layout_builder__is_layout_builder_route() {
+  $layout_builder_route = drupal_static(__FUNCTION__);
+  if ($layout_builder_route !== NULL) {
+    return $layout_builder_route;
+  }
+
+  $route_name = \Drupal::routeMatch()->getRouteName();
+  $layout_builder_route = FALSE;
+
+  if ($route_name !== NULL && preg_match('/^(layout_builder\.([^.]+\.)?)/', $route_name)) {
+    $layout_builder_route = TRUE;
+  }
+
+  $context = NULL;
+  \Drupal::moduleHandler()->alter('varbase_layout_builder__is_layout_builder_route', $layout_builder_route, $context);
+  unset($context);
+  return $layout_builder_route;
+}