diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php
index 2420f1d7ecd2984cd290881545090db3f79da230..6393d1ca5cf01fb7805df6c4bf177752c6b89d1a 100644
--- a/app/controllers/course/wiki.php
+++ b/app/controllers/course/wiki.php
@@ -116,7 +116,7 @@ class Course_WikiController extends AuthenticatedController
 
         $startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
         $this->contentbar = ContentBar::get()
-            ->setTOC(CoreWiki::getTOC($this->page->parent && $startPage ? $startPage : $this->page, $this->page['name']))
+            ->setTOC(CoreWiki::getTOC($this->page))
             ->setIcon(Icon::create('wiki'))
             ->setInfo(sprintf(
                 _('Version %1$s, geändert von %2$s <br> am %3$s'),
@@ -418,7 +418,7 @@ class Course_WikiController extends AuthenticatedController
         );
         $startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
         $this->contentbar = ContentBar::get()
-            ->setTOC(CoreWiki::getTOC($startPage, $page['name']))
+            ->setTOC(CoreWiki::getTOC($page))
             ->setIcon(Icon::create('wiki'))
             ->setInfo(_('Zuletzt gespeichert') .': '. '<studip-date-time :timestamp="Math.floor(lastSaveDate / 1000)" :relative="true"></studip-date-time>');
     }
@@ -609,7 +609,7 @@ class Course_WikiController extends AuthenticatedController
         Sidebar::Get()->addWidget($this->getViewsWidget($version->page, 'history'));
         $startPage = WikiPage::find($this->range->getConfiguration()->WIKI_STARTPAGE_ID);
         $this->contentbar = ContentBar::get()
-            ->setTOC(CoreWiki::getTOC($startPage, $version->page['name']))
+            ->setTOC(CoreWiki::getTOC($version->page))
             ->setIcon(Icon::create('wiki'))
             ->setInfo(sprintf(
                 _('Version %1$s vom %2$s'),
diff --git a/lib/modules/CoreWiki.class.php b/lib/modules/CoreWiki.class.php
index e82fd6582ebd5704579c790da306746c371f49c1..a447451b8e34a9104e0e79e99ed3191718b204a0 100644
--- a/lib/modules/CoreWiki.class.php
+++ b/lib/modules/CoreWiki.class.php
@@ -181,23 +181,22 @@ class CoreWiki extends CorePlugin implements StudipModule
      * Generates a page hierarchy for table of contents/breadcrumbs.
      * @return TOCItem
      */
-    public static function getTOC($startPage, $active_title = null): TOCItem
+    public static function getTOC($page, $first = true): TOCItem
     {
         $root = new TOCItem(
-            ($startPage && ($startPage->isNew() || $startPage->name === 'WikiWikiWeb'))
+            ($page && ($page->isNew() || $page->name === 'WikiWikiWeb'))
             ? _('Wiki-Startseite')
-            : $startPage->name
+            : $page->name
         );
-        $root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$startPage->id));
-        if ($startPage->name == 'WikiWikiWeb' || $startPage->id == CourseConfig::get($startPage->range_id)->WIKI_STARTPAGE_ID) {
+        $root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$page->id));
+        if ($page->name == 'WikiWikiWeb' || $page->id == CourseConfig::get($page->range_id)->WIKI_STARTPAGE_ID) {
             $root->setIcon(Icon::create('wiki'));
         }
-        $root->setActive($root->getTitle() === $active_title);
+        $root->setActive($first);
 
-        foreach ($startPage->children as $child) {
-            $item = self::getTOC($child, $active_title);
-            $item->setActive($item->getTitle() === $active_title);
-            $root->addChild($item);
+        if ($page->parent) {
+            $parent = self::getTOC($page->parent, false);
+            $root->setParent($parent);
         }
 
         return $root;