diff --git a/lib.php b/lib.php
index 0dd94d3a6a50bba73e0d42e1278c023cdc599658..f34f2791d6e34bb07597c2058b27b318ff2f4e06 100644
--- a/lib.php
+++ b/lib.php
@@ -42,7 +42,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
         $courses = [];
     }
 
-    // Hides courses that are shown by default
+    // Removes courses that are shown by default
     foreach ($myCoursesChildNodes as $cn) {
         $myCoursesNode->find($cn, null)->showinflatnavigation = false;
     }
@@ -95,7 +95,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
     add_semester_nodes($mySemesters, $myCoursesNode);
 
     if ($openFirstSemester)
-        open_first_semester_node($mySemesters, $myCoursesNode);
+       open_semester_node(array_keys($mySemesters)[0] , $myCoursesNode);
 
     // Add all special nodes
     if ($specialNodesFirst == 1)
@@ -115,6 +115,7 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
         $semesterKey = create_node_key($semesterName);
         $semesterNode = $navigation->find($semesterKey, null);
 
+        // Can't find semester of current course
         if (!$semesterNode) {
             continue;
         }
@@ -123,16 +124,20 @@ function local_sembasednav_extend_navigation(global_navigation $navigation)
         $courseKey = create_node_key($courseName);
 
         $courseNode = navigation_node::create($courseName, new moodle_url('/course/view.php', array('id' => $c->id)), global_navigation::TYPE_COURSE, $courseName, $courseKey, new pix_icon('i/course', 'grades'));
+
         $courseNode->showinflatnavigation = true;
         $courseNode->add_class('p-l-3');
-        $courseNode->add_class('localboostnavigationcollapsiblechild');
+
         if (!$semesterNode->forceopen)
             $courseNode->add_class('localboostnavigationcollapsedchild');
 
         $semesterNode->add_node($courseNode);
-    }
-
 
+        // Open semester node of active course
+        if ($courseNode->isactive) {
+            open_semester_node($semesterNode->text , $myCoursesNode);
+        }
+    }
 }
 
 /**
@@ -159,7 +164,7 @@ function add_semester_nodes(array $semesterList, $parentNode)
         $parentNode->add_node($semesterNode);
     }
 
-    // Apply collapse navigation js to every semeseter
+    // Apply collapse navigation js to every semester
     if (!empty($collapsenodesforjs)) {
         $PAGE->requires->js_call_amd('local_boostnavigation/collapsenavdrawernodes', 'init',
             [$collapsenodesforjs, []]);
@@ -171,27 +176,28 @@ function add_semester_nodes(array $semesterList, $parentNode)
 }
 
 /**
- * @param array $semesterList
+ * @param $semesterKey
  * @param $myCourseNode
  */
-function open_first_semester_node(array $semesterList, $myCourseNode)
+function open_semester_node($semesterKey, $myCourseNode)
 {
-    $semesterKeys = array_keys($semesterList);
-
-    if (empty($semesterKeys[0]))
+    if (empty($semesterKey))
         return;
 
-    $firstSemesterKey = create_node_key($semesterKeys[0]);
-
-    $semesterNode = $myCourseNode->find($firstSemesterKey, global_navigation::TYPE_CUSTOM);
+    $key = create_node_key($semesterKey);
+    $semesterNode = $myCourseNode->find($key, global_navigation::NODETYPE_BRANCH);
 
     $semesterNode->forceopen = true;
-
     $semesterNode->remove_class('localboostnavigationcollapsedparent');
+
+    foreach ($semesterNode->get_children_key_list() as $c) {
+        $node = $myCourseNode->find($c, null);
+        $node->remove_class('localboostnavigationcollapsedchild');
+    }
 }
 
 /**
- * Creates a semester node with needed cs classes for collapse navigation js
+ * Creates a semester node with needed css classes for collapse navigation js
  * @param string $semesterName
  * @return navigation_node
  * @throws coding_exception
@@ -205,12 +211,11 @@ function create_semester_node(string $semesterName)
 
     $semesterKey = create_node_key($semesterName);
 
-    $semesterNode = navigation_node::create($semesterName, new moodle_url('/course/view.php', null), global_navigation::TYPE_CUSTOM, null, $semesterKey, null);
+    $semesterNode = navigation_node::create($semesterName, new moodle_url('/course/view.php', null), global_navigation::NODETYPE_BRANCH, null, $semesterKey, null);
     $semesterNode->showinflatnavigation = true;
 
     $semesterNode->add_class('localboostnavigationcollapsibleparent');
     $semesterNode->add_class('localboostnavigationcollapsedparent');
-    $semesterNode->add_class('localboostnavigationcollapsiblechild');
 
     if ($userprefmycoursesnode == 1) {
         $semesterNode->add_class('localboostnavigationcollapsedchild');