diff --git a/src/main/java/org/olat/course/nodes/BCCourseNode.java b/src/main/java/org/olat/course/nodes/BCCourseNode.java
index 31c64de7c2d4428a21fc359a7f71f2f46439eafb..6a0d80162e41746f86254c093841fb719ad65c38 100644
--- a/src/main/java/org/olat/course/nodes/BCCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/BCCourseNode.java
@@ -104,7 +104,7 @@ public class BCCourseNode extends AbstractAccessableCourseNode {
 	@Override
 	public TabbableController createEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel, ICourse course, UserCourseEnvironment euce) {
 		updateModuleConfigDefaults(false);
-		BCCourseNodeEditController childTabCntrllr = new BCCourseNodeEditController(this, course, ureq, wControl, euce);
+		BCCourseNodeEditController childTabCntrllr = new BCCourseNodeEditController(this, course, ureq, wControl, stackPanel, euce);
 		CourseNode chosenNode = course.getEditorTreeModel().getCourseNode(euce.getCourseEditorEnv().getCurrentCourseNodeId());
 		return new NodeEditController(ureq, wControl, course.getEditorTreeModel(), course, chosenNode, euce, childTabCntrllr);
 	}
diff --git a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java
index e85b819e2c4f9b0159501c1cbbd7d19746c890e4..669022ff3107499e18ab9ba3b96f053e7c79c4b1 100644
--- a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java
+++ b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java
@@ -31,13 +31,14 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
+import org.olat.core.gui.components.stack.BreadcrumbPanel;
+import org.olat.core.gui.components.stack.PopEvent;
 import org.olat.core.gui.components.tabbedpane.TabbedPane;
 import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.ControllerEventListener;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
 import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
 import org.olat.core.util.vfs.Quota;
 import org.olat.core.util.vfs.QuotaManager;
@@ -78,12 +79,14 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 	
 	private Link vfButton;
 	private TabbedPane myTabbedPane;
-	private VelocityContainer accessabiliryContent, folderContent;
+	private final BreadcrumbPanel stackPanel;
+	private final VelocityContainer folderContent;
+	private final VelocityContainer accessabiliryContent;
 
-	private CloseableModalController cmc;
 	private FolderRunController folderCtrl;
 	private BCCourseNodeEditForm folderPathChoose;
-	private ConditionEditController uploaderCondContr, downloaderCondContr;
+	private ConditionEditController uploaderCondContr;
+	private ConditionEditController downloaderCondContr;
 	
 	
 	@Autowired
@@ -97,13 +100,15 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 	 * @param ureq
 	 * @param wControl
 	 */
-	public BCCourseNodeEditController(BCCourseNode bcNode, ICourse course, UserRequest ureq, WindowControl wControl,
+	public BCCourseNodeEditController(BCCourseNode bcNode, ICourse course, UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel,
 			UserCourseEnvironment euce) {
 		super(ureq,wControl);
 		//o_clusterOK by guido: inside course editor its save to have a reference to the course
 		this.course = course;
 		this.bcNode = bcNode;
 		myTabbedPane = null;
+		this.stackPanel = stackPanel;
+		stackPanel.addListener(this);
 		
 		accessabiliryContent = createVelocityContainer("edit");
 
@@ -141,8 +146,15 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 
 	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
-		if (source == vfButton){
+		if (source == vfButton) {
 			doOpenFolder(ureq);
+		} else if(source == stackPanel) {
+			if(event instanceof PopEvent) {
+				PopEvent pe = (PopEvent)event;
+				if(pe.getController() == folderCtrl) {
+					cleanUp();
+				}
+			}
 		}
 	}
 	
@@ -181,11 +193,10 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 		if(namedContainer == null) {
 			showWarning("warning.no.linkedfolder");
 		} else {
+			removeAsListenerAndDispose(folderCtrl);
 			folderCtrl = new FolderRunController(namedContainer, false, ureq, getWindowControl());
 			listenTo(folderCtrl);
-			cmc = new CloseableModalController(getWindowControl(), translate("close"), folderCtrl.getInitialComponent());
-			listenTo(cmc);
-			cmc.activate();
+			stackPanel.pushController("Preview", folderCtrl);
 		}
 	}
 	
@@ -219,21 +230,14 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 				accessabiliryContent.contextPut("uploadable", true);
 			}
 			fireEvent(urequest, event);
-		} else if(cmc == source) {
-			cleanUp();
 		}
 	}
 	
 	private void cleanUp() {
 		removeAsListenerAndDispose(folderCtrl);
-		removeAsListenerAndDispose(cmc);
 		folderCtrl = null;
-		cmc = null;
 	}
 
-	/**
-	 * @see org.olat.core.gui.control.generic.tabbable.TabbableDefaultController#addTabs(org.olat.core.gui.components.TabbedPane)
-	 */
 	@Override
 	public void addTabs(TabbedPane tabbedPane) {
 		myTabbedPane = tabbedPane;
@@ -243,7 +247,9 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 
 	@Override
 	protected void doDispose() {
-		//
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 	}
 
 	@Override