diff --git a/src/main/java/org/olat/core/gui/control/DefaultController.java b/src/main/java/org/olat/core/gui/control/DefaultController.java
index 18e86b10211863e4461ec2e635c3770d29809504..240182ba331a7a01291403bbc7d34e535e6a95e6 100644
--- a/src/main/java/org/olat/core/gui/control/DefaultController.java
+++ b/src/main/java/org/olat/core/gui/control/DefaultController.java
@@ -470,10 +470,10 @@ public abstract class DefaultController implements Controller, ControllerEventLi
 	}
 	
 	protected WindowControl addToHistory(UserRequest ureq, Controller controller) {
-		WindowControl wControl;
+		WindowControl wControl = null;
 		if(controller instanceof DefaultController) {
 			wControl = ((DefaultController)controller).getWindowControl();
-		} else {
+		} else if(controller != null) {
 			wControl = controller.getWindowControlForDebug();
 		}	
 		BusinessControlFactory.getInstance().addToHistory(ureq, wControl);
diff --git a/src/main/java/org/olat/course/nodes/STCourseNode.java b/src/main/java/org/olat/course/nodes/STCourseNode.java
index e05d9be1a5ce0ebaa890c36645ce43910b801372..b3d011f2256cc09939812e8ad3f9bd9a9a9260bf 100644
--- a/src/main/java/org/olat/course/nodes/STCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/STCourseNode.java
@@ -138,6 +138,7 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess
 	 *      org.olat.course.run.userview.UserCourseEnvironment,
 	 *      org.olat.course.run.userview.NodeEvaluation)
 	 */
+	@Override
 	public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl,
 			final UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) {
 		updateModuleConfigDefaults(false);
@@ -174,11 +175,12 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess
 			spCtr.addLoggingResourceable(LoggingResourceable.wrap(this));
 			// create clone wrapper layout, allow popping into second window
 			CloneLayoutControllerCreatorCallback clccc = new CloneLayoutControllerCreatorCallback() {
-				public ControllerCreator createLayoutControllerCreator(final UserRequest ureq, final ControllerCreator contentControllerCreator) {
-					return BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, new ControllerCreator() {
-						@SuppressWarnings("synthetic-access")
+				@Override
+				public ControllerCreator createLayoutControllerCreator(final UserRequest uureq, final ControllerCreator contentControllerCreator) {
+					return BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(uureq, new ControllerCreator() {
+						@Override
 						public Controller createController(UserRequest lureq, WindowControl lwControl) {
-							// wrapp in column layout, popup window needs a layout controller
+							// wrap in column layout, popup window needs a layout controller
 							Controller ctr = contentControllerCreator.createController(lureq, lwControl);
 							LayoutMain3ColsController layoutCtr = new LayoutMain3ColsController(lureq, lwControl, ctr);
 							layoutCtr.setCustomCSS(CourseFactory.getCustomCourseCss(lureq.getUserSession(), userCourseEnv.getCourseEnvironment()));
@@ -192,7 +194,7 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess
 			};
 			Controller wrappedCtrl = TitledWrapperHelper.getWrapper(ureq, wControl, spCtr, this, ICON_CSS_CLASS);
 			if(wrappedCtrl instanceof CloneableController) {
-				cont	 = new CloneController(ureq, wControl, (CloneableController)wrappedCtrl, clccc);
+				cont = new CloneController(ureq, wControl, (CloneableController)wrappedCtrl, clccc);
 			} else {
 				throw new AssertException("Need to be a cloneable");
 			}
diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java
index 004a968fa005e53a9209f1d92cac2585ee4fd8a4..d5c0c26f003335ab5746a27bc406cce0fd70d7f2 100644
--- a/src/main/java/org/olat/course/run/RunMainController.java
+++ b/src/main/java/org/olat/course/run/RunMainController.java
@@ -431,8 +431,14 @@ public class RunMainController extends MainLayoutBasicController implements Gene
 			}
 		} else if(currentNodeController instanceof Activateable2) {
 			((Activateable2)currentNodeController).activate(ureq, entries, state);
+		} else if(currentNodeController != null) {
+			contentP.setContent(currentNodeController.getInitialComponent());
+		} else {
+			MessageController msgCtrl = MessageUIFactory
+					.createWarnMessage(ureq, getWindowControl(), null, translate("msg.nodenotavailableanymore"));
+			listenTo(msgCtrl);
+			contentP.setContent(msgCtrl.getInitialComponent());
 		}
-		contentP.setContent(currentNodeController.getInitialComponent());
 		
 		updateNextPrevious();
 		updateLastUsage(nclr.getCalledCourseNode());