diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentMainLayoutController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentMainLayoutController.java
new file mode 100644
index 0000000000000000000000000000000000000000..afce4e13ab786c1738ffd227ba662ba15a1a7f16
--- /dev/null
+++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentMainLayoutController.java
@@ -0,0 +1,109 @@
+/**
+ * <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.course.nodes.iq;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.Windows;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.panel.StackedPanel;
+import org.olat.core.gui.control.ChiefController;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.ScreenMode.Mode;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.MainLayoutBasicController;
+import org.olat.ims.qti21.ui.AssessmentTestDisplayController;
+
+/**
+ * 
+ * The assessment test display has its own main layout. This is a thin
+ * wrapper which implements the MainLayoutController interface.
+ * 
+ * Initial date: 22 janv. 2018<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class QTI21AssessmentMainLayoutController extends MainLayoutBasicController {
+	
+	private ChiefController thebaseChief;
+	private final StackedPanel mainPanel;
+	
+	private boolean fullScreen;
+	
+	public QTI21AssessmentMainLayoutController(UserRequest ureq, WindowControl wControl, AssessmentTestDisplayController controller) {
+		super(ureq, wControl);
+		mainPanel = putInitialPanel(controller.getInitialComponent());
+	}
+	
+	/**
+	 * The Controller to be set on the mainPanel in case of disposing this layout
+	 * controller.
+	 * 
+	 * @param disposedMessageControllerOnDipsose
+	 */
+	public void setDisposedMessageController(Controller disposedMessageControllerOnDipsose) {
+		setDisposedMsgController(disposedMessageControllerOnDipsose);
+	}
+
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		//
+	}
+	
+	public boolean isFullScreen() {
+		return fullScreen;
+	}
+	
+	public void setAsFullscreen(UserRequest ureq) {
+		ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController();
+		if (cc != null) {
+			thebaseChief = cc;
+			thebaseChief.getScreenMode().setMode(Mode.full);
+		} else {
+			Windows.getWindows(ureq).setFullScreen(Boolean.TRUE);
+		}
+		fullScreen = true;
+	}
+	
+	@SuppressWarnings("deprecation")
+	public void activate() {
+		getWindowControl().pushToMainArea(mainPanel);
+	}
+	
+	public void deactivate(UserRequest ureq) {
+		getWindowControl().pop();
+		if (fullScreen) {
+			if(thebaseChief != null) {
+				thebaseChief.getScreenMode().setMode(Mode.standard);
+			} else if (ureq != null){
+				ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController();
+				if (cc != null) {
+					thebaseChief = cc;
+					thebaseChief.getScreenMode().setMode(Mode.standard);
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
index 0817c7350fc0a85ead3e4368dbea098953ec97a3..b1245c13cd61955d499b64da129ebb0dda2ab57f 100644
--- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
+++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
@@ -126,11 +126,11 @@ public class QTI21AssessmentRunController extends BasicController implements Gen
 	private final QTI21OverrideOptions overrideOptions;
 	// The test is really assessment not a self test or a survey
 	private final boolean assessmentType = true;
+	private AtomicBoolean incrementAttempts = new AtomicBoolean(true);
 	
 	private AssessmentResultController resultCtrl;
 	private AssessmentTestDisplayController displayCtrl;
-	private LayoutMain3ColsController displayContainerController;
-	private AtomicBoolean incrementAttempts = new AtomicBoolean(true);
+	private QTI21AssessmentMainLayoutController displayContainerController;
 	
 	@Autowired
 	private QTI21Service qtiService;
@@ -588,9 +588,11 @@ public class QTI21AssessmentRunController extends BasicController implements Gen
 		} else {
 			// in case displayController was unable to initialize, a message was set by displayController
 			// this is the case if no more attempts or security check was unsuccessfull
-			displayContainerController = new LayoutMain3ColsController(ureq, getWindowControl(), displayCtrl);
+
+			displayContainerController = new QTI21AssessmentMainLayoutController(ureq, getWindowControl(), displayCtrl);
 			listenTo(displayContainerController); // autodispose
 
+
 			Panel empty = new Panel("empty");//empty panel set as "menu" and "tool"
 			Controller courseCloser = new DisposedCourseRestartController(ureq, getWindowControl(), courseRe);
 			Controller disposedRestartController = new LayoutMain3ColsController(ureq, getWindowControl(), empty, courseCloser.getInitialComponent(), "disposed");