diff --git a/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsBackController.java b/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsBackController.java
index 56e74ff258283471192f8840dd3f84a1da869f04..4c33848d149ac618379de003af786f84aa55eff9 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsBackController.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsBackController.java
@@ -116,6 +116,10 @@ public class LayoutMain3ColsBackController extends MainLayoutBasicController imp
 		else
 			getWindowControl().pushToMainArea(backVC);
 	}
+	
+	public boolean isFullScreen() {
+		return fullScreen;
+	}
 
 	// fxdiff FXOLAT-116: SCORM improvements
 	public void setAsFullscreen(UserRequest ureq) {
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsController.java b/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsController.java
index 3ae272f4ace8c352f44d5773d7c6c016f82bfde9..be275af7cdb8d9389a27989f247475bf55719a09 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsController.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/LayoutMain3ColsController.java
@@ -157,6 +157,10 @@ public class LayoutMain3ColsController extends MainLayoutBasicController impleme
 		putInitialPanel(layoutMainVC);
 	}
 	
+	public boolean isFullScreen() {
+		return fullScreen;
+	}
+	
 	public void setAsFullscreen(UserRequest ureq) {
 		ChiefController cc = (ChiefController) Windows.getWindows(ureq).getAttribute("AUTHCHIEFCONTROLLER");
 		if (cc instanceof BaseChiefController) {
@@ -181,7 +185,7 @@ public class LayoutMain3ColsController extends MainLayoutBasicController impleme
 		if (fullScreen) {
 			if(thebaseChief != null) {
 				thebaseChief.removeBodyCssClass("b_full_screen");
-			} else {
+			} else if (ureq != null){
 				ChiefController cc = (ChiefController) Windows.getWindows(ureq).getAttribute("AUTHCHIEFCONTROLLER");
 				if (cc instanceof BaseChiefController) {
 					thebaseChief = (BaseChiefController) cc;
diff --git a/src/main/java/org/olat/core/gui/control/ConfigurationChangedListener.java b/src/main/java/org/olat/core/gui/control/ConfigurationChangedListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..afd530130c88f1df2eecebd1d2410ca08de425ad
--- /dev/null
+++ b/src/main/java/org/olat/core/gui/control/ConfigurationChangedListener.java
@@ -0,0 +1,34 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.gui.control;
+
+/**
+ * Simple interface to propagate the news "configuration has changed"
+ * through wrappers and controllers.
+ * 
+ * 
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public interface ConfigurationChangedListener {
+	
+	public void configurationChanged();
+
+}
diff --git a/src/main/java/org/olat/core/gui/control/generic/title/TitledWrapperController.java b/src/main/java/org/olat/core/gui/control/generic/title/TitledWrapperController.java
index c666340510cb097b48620bf58db8335c323d0f52..2d1e5d0c25eb03271dad20d3435d50bf17d77497 100644
--- a/src/main/java/org/olat/core/gui/control/generic/title/TitledWrapperController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/title/TitledWrapperController.java
@@ -31,6 +31,7 @@ import java.util.List;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.ConfigurationChangedListener;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
@@ -53,7 +54,7 @@ import org.olat.core.util.StringHelper;
  * Initial Date:  21.06.2007 <br>
  * @author Lavinia Dumitrescu, Florian Gnägi
  */
-public class TitledWrapperController extends BasicController implements CloneableController, Activateable2 {
+public class TitledWrapperController extends BasicController implements CloneableController, Activateable2, ConfigurationChangedListener {
 	
 	private static final String COMPONENT_NAME = "child";
 	//Velocity variable
@@ -130,7 +131,14 @@ public class TitledWrapperController extends BasicController implements Cloneabl
 		
 		putInitialPanel(theVelocityContainer);
 	}
-	
+
+	@Override
+	public void configurationChanged() {
+		if(contentController instanceof ConfigurationChangedListener) {
+			((ConfigurationChangedListener)contentController).configurationChanged();
+		}
+	}
+
 	protected void doDispose() {		
 		if (descriptionController != null) {
 			descriptionController.dispose();
diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
index e5159e6c6334d9b5c059c730dfc4edbc7e267cde..9c0afa1674d95fee5a9614bcdedc08aad0590840 100644
--- a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
+++ b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
@@ -34,12 +34,12 @@ import org.olat.core.gui.components.Window;
 import org.olat.core.gui.components.panel.Panel;
 import org.olat.core.gui.components.tree.TreeEvent;
 import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.ConfigurationChangedListener;
 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.controller.BasicController;
-import org.olat.core.id.Identity;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.event.GenericEventListener;
@@ -66,7 +66,7 @@ import org.olat.util.logging.activity.LoggingResourceable;
  * 
  * @author Felix Jost
  */
-public class ScormRunController extends BasicController implements ScormAPICallback, GenericEventListener {
+public class ScormRunController extends BasicController implements ScormAPICallback, GenericEventListener, ConfigurationChangedListener {
 
 	private ModuleConfiguration config;
 	private File cpRoot;
@@ -83,8 +83,6 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 	private UserCourseEnvironment userCourseEnv;
 	private ChooseScormRunModeForm chooseScormRunMode;
 	private boolean isPreview;
-
-	private Identity identity;
 	private boolean isAssessable;
 
 	/**
@@ -108,7 +106,6 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 		this.userCourseEnv = userCourseEnv;
 		this.config = config;
 		this.scormNode = scormNode;
-		this.identity = ureq.getIdentity();
 
 		addLoggingResourceable(LoggingResourceable.wrap(scormNode));
 		init(ureq);
@@ -332,6 +329,11 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 		return (config.getBooleanEntry(NodeEditController.CONFIG_COMPONENT_MENU).booleanValue());
 	}
 
+	@Override
+	public void configurationChanged() {
+		scormDispC.configurationChanged();
+	}
+
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
 	 */
diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java
index aedd952d14360e935013e5bb32a0edf46a79f1d9..570c09027420ce8fd2a0b52372fb879ef8d81c7c 100644
--- a/src/main/java/org/olat/course/run/RunMainController.java
+++ b/src/main/java/org/olat/course/run/RunMainController.java
@@ -52,6 +52,7 @@ import org.olat.core.gui.components.tree.TreeEvent;
 import org.olat.core.gui.components.tree.TreeModel;
 import org.olat.core.gui.components.tree.TreeNode;
 import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.ConfigurationChangedListener;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
@@ -995,12 +996,20 @@ public class RunMainController extends MainLayoutBasicController implements Gene
 			}
 
 		} else if (event instanceof CourseConfigEvent) {				
+			if(currentNodeController instanceof ConfigurationChangedListener) {
+				//give to opportunity to close popups ...
+				((ConfigurationChangedListener)currentNodeController).configurationChanged();
+			}
 			dispose();
 			
 		} else if (event instanceof EntryChangedEvent && ((EntryChangedEvent)event).getChange()!=EntryChangedEvent.MODIFIED_AT_PUBLISH) {
 			//courseRepositoryEntry changed (e.g. fired at course access rule change)
 			EntryChangedEvent repoEvent = (EntryChangedEvent) event;			
 			if (courseRepositoryEntry.getKey().equals(repoEvent.getChangedEntryKey()) && repoEvent.getChange() == EntryChangedEvent.MODIFIED) {				
+				if(currentNodeController instanceof ConfigurationChangedListener) {
+					//give to opportunity to close popups ...
+					((ConfigurationChangedListener)currentNodeController).configurationChanged();
+				}
 				dispose();				
 			}
 		}
diff --git a/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java b/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java
index 97c4fca5efb3d6b13ff2c7de730de0f8849cf0d0..8151c632af2a9b838bf2c3cb762668ebcd76b54d 100644
--- a/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java
+++ b/src/main/java/org/olat/modules/scorm/ScormAPIandDisplayController.java
@@ -26,18 +26,15 @@
 package org.olat.modules.scorm;
 
 import java.io.File;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
 
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsBackController;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsPreviewController;
 import org.olat.core.commons.modules.bc.FolderConfig;
 import org.olat.core.dispatcher.mapper.Mapper;
-import org.olat.core.dispatcher.mapper.MapperService;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.htmlheader.jscss.JSAndCSSComponent;
@@ -48,6 +45,7 @@ import org.olat.core.gui.components.tree.MenuTree;
 import org.olat.core.gui.components.tree.TreeEvent;
 import org.olat.core.gui.components.tree.TreeNode;
 import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.ConfigurationChangedListener;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
@@ -70,11 +68,8 @@ import org.olat.course.CourseModule;
  * the sco api calls to the scorm RTE backend. It provides also an navigation to
  * navigate in the tree with "pre" "next" buttons.
  */
-public class ScormAPIandDisplayController extends MainLayoutBasicController {
-	//private static final String PACKAGE = Util.getPackageName(ScormAPIandDisplayController.class);
+public class ScormAPIandDisplayController extends MainLayoutBasicController implements ConfigurationChangedListener {
 
-	// private static final String ACTIVITY_CONTENTPACKING_GET_FILE =
-	// "CONTENTPACKING_GET_FILE";
 	protected static final String LMS_INITIALIZE = "LMSInitialize";
 	protected static final String LMS_GETVALUE = "LMSGetValue";
 	protected static final String LMS_SETVALUE = "LMSSetValue";
@@ -340,6 +335,17 @@ public class ScormAPIandDisplayController extends MainLayoutBasicController {
 		scormAdapter.launchItem(scormId);
 		iframectr.setCurrentURI(identifierRes);
 	}
+	
+	@Override
+	public void configurationChanged() {
+		if(columnLayoutCtr instanceof LayoutMain3ColsBackController) {
+			LayoutMain3ColsBackController layoutCtr = (LayoutMain3ColsBackController)columnLayoutCtr;
+			layoutCtr.deactivate();
+		} else if(columnLayoutCtr instanceof LayoutMain3ColsController) {
+			LayoutMain3ColsController layoutCtr = (LayoutMain3ColsController)columnLayoutCtr;
+			layoutCtr.deactivate(null);
+		}
+	}
 
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)