diff --git a/src/Plugin/Block/EntitySubmenuBlock.php b/src/Plugin/Block/EntitySubmenuBlock.php
index 49b6f11..33eee93 100644
--- a/src/Plugin/Block/EntitySubmenuBlock.php
+++ b/src/Plugin/Block/EntitySubmenuBlock.php
@@ -184,6 +184,22 @@ class EntitySubmenuBlock extends SystemMenuBlock {
     // We only want enabled links.
     $parameters->onlyEnabledLinks();
 
+    // For menu blocks with start level greater than 1, only show menu items
+    // from the current active trail. Adjust the root according to the current
+    // position in the menu in order to determine if we can show the subtree.
+    if ($level > 1) {
+      if (count($parameters->activeTrail) >= $level) {
+        // Active trail array is child-first. Reverse it, and pull the new menu
+        // root based on the parent of the configured start level.
+        $menu_trail_ids = array_reverse(array_values($parameters->activeTrail));
+        $menu_root = $menu_trail_ids[$level - 1];
+        $parameters->setRoot($menu_root)->setMinDepth(1);
+      }
+      else {
+        return $build;
+      }
+    }
+
     $tree = $this->menuTree->load($menu_name, $parameters);
     $manipulators = [
       ['callable' => 'menu.default_tree_manipulators:checkAccess'],
