diff --git a/src/main/java/org/olat/course/CourseFactory.java b/src/main/java/org/olat/course/CourseFactory.java
index 5688a416524d02f52d7b257206ae413c817d8cf1..1a6ba698d1e81f0ae0aa04b73580e2cb2bcd544b 100644
--- a/src/main/java/org/olat/course/CourseFactory.java
+++ b/src/main/java/org/olat/course/CourseFactory.java
@@ -207,9 +207,10 @@ public class CourseFactory extends BasicManager {
 	 * @return editor controller for the given course resourceable; if the editor
 	 *         is already locked, it returns a controller with a lock message
 	 */
-	public static Controller createEditorController(UserRequest ureq, WindowControl wControl, StackedController stack, OLATResourceable olatResource) {
+	public static Controller createEditorController(UserRequest ureq, WindowControl wControl, StackedController stack,
+			OLATResourceable olatResource, CourseNode selectedNode) {
 		ICourse course = loadCourse(olatResource);
-		EditorMainController emc = new EditorMainController(ureq, wControl, course, stack);
+		EditorMainController emc = new EditorMainController(ureq, wControl, course, stack, selectedNode);
 		if (!emc.getLockEntry().isSuccess()) {
 			// get i18n from the course runmaincontroller to say that this editor is
 			// already locked by another person
diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java
index c1c5c6af08bc225de33794f6782d8f373229163e..1ada8d7ce99975f0ed4b615d96963b714ad892f5 100644
--- a/src/main/java/org/olat/course/editor/EditorMainController.java
+++ b/src/main/java/org/olat/course/editor/EditorMainController.java
@@ -218,7 +218,8 @@ public class EditorMainController extends MainLayoutBasicController implements G
 	 * @param wControl The window controller
 	 * @param course The course
 	 */
-	public EditorMainController(UserRequest ureq, WindowControl wControl, OLATResourceable ores, StackedController externStack) {
+	public EditorMainController(UserRequest ureq, WindowControl wControl, OLATResourceable ores,
+			StackedController externStack, CourseNode selectedNode) {
 		super(ureq,wControl);
 		this.ores = ores;
 		stackPanel = externStack == null
@@ -350,9 +351,15 @@ public class EditorMainController extends MainLayoutBasicController implements G
 			// - deleted events
 			CoordinatorManager.getInstance().getCoordinator().getEventBus().registerFor(this, ureq.getIdentity(), course);
 			// activate course root node
-			String rootNodeIdent = cetm.getRootNode().getIdent();
-			menuTree.setSelectedNodeId(rootNodeIdent);
-			updateViewForSelectedNodeId(ureq, rootNodeIdent);
+			String nodeIdent = cetm.getRootNode().getIdent();
+			if(selectedNode != null) {
+				CourseEditorTreeNode editorNode = cetm.getCourseEditorNodeContaining(selectedNode);
+				if(editorNode != null) {
+					nodeIdent = editorNode.getIdent();
+				}
+			}
+			menuTree.setSelectedNodeId(nodeIdent);
+			updateViewForSelectedNodeId(ureq, nodeIdent);
 		}
 		} catch (RuntimeException e) {
 			log.warn(RELEASE_LOCK_AT_CATCH_EXCEPTION+" [in <init>]", e);		
diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java
index 076f0b2bc61d6206d26a8d43b8ebf75e4f6f9241..cce4fe0a0a025505ff18c3afa258499ba3ada62e 100644
--- a/src/main/java/org/olat/course/run/RunMainController.java
+++ b/src/main/java/org/olat/course/run/RunMainController.java
@@ -818,7 +818,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene
 	
 	private void doEdit(UserRequest ureq) {
 		if (hasCourseRight(CourseRights.RIGHT_COURSEEDITOR) || isCourseAdmin) {
-			Controller ec = CourseFactory.createEditorController(ureq, getWindowControl(), all, course);
+			Controller ec = CourseFactory.createEditorController(ureq, getWindowControl(), all, course, currentCourseNode);
 			//user activity logger which was initialized with course run
 			if(ec != null){
 				//we are in editing mode