diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21EditLayoutForm.java b/src/main/java/org/olat/course/nodes/iq/QTI21EditLayoutForm.java
index 4f2ef45b824cb3a5cc234c705f6f82b5efb0d98c..82e846cf07397c58eedea25f747bee4f910c2f50 100644
--- a/src/main/java/org/olat/course/nodes/iq/QTI21EditLayoutForm.java
+++ b/src/main/java/org/olat/course/nodes/iq/QTI21EditLayoutForm.java
@@ -354,6 +354,7 @@ public class QTI21EditLayoutForm extends FormBasicController {
 			if(configEl.isOneSelected()) {
 				modConfig.setBooleanEntry(IQEditController.CONFIG_KEY_CONFIG_REF, configEl.isSelected(0));
 				if(configEl.isSelected(1)) {// manual configuration
+					persistConfiguration();
 					long maxTime = getMaxTimeLimit();
 					if(maxTime > 0) {
 						modConfig.setIntValue(IQEditController.CONFIG_KEY_TIME_LIMIT, (int)maxTime);
@@ -375,6 +376,11 @@ public class QTI21EditLayoutForm extends FormBasicController {
 
 	@Override
 	protected void formOK(UserRequest ureq) {
+		persistConfiguration();
+		fireEvent(ureq, Event.DONE_EVENT);
+	}
+	
+	protected void persistConfiguration() {
 		modConfig.setBooleanEntry(IQEditController.CONFIG_KEY_CONFIG_REF, configEl.isSelected(0));
 		modConfig.setBooleanEntry(IQEditController.CONFIG_FULLWINDOW, fullWindowEl.isSelected(0));
 		if(limitAttemptsEl.isSelected(0)) {
@@ -418,7 +424,5 @@ public class QTI21EditLayoutForm extends FormBasicController {
 		} else {
 			modConfig.remove(IQEditController.CONFIG_KEY_TIME_LIMIT);
 		}
-		
-		fireEvent(ureq, Event.DONE_EVENT);
 	}
 }