diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java b/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java
index c6fec06a4add179ef8bbbb7d6b2172f536eb4eeb..d81ee5d190ddae05c81c0284e0f6d0f7b90e71e6 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java
@@ -49,7 +49,8 @@ import org.olat.course.editor.NodeEditController;
  */
 public class DeliveryOptionsConfigurationController extends FormBasicController {
 	
-	private DeliveryOptions config, parentConfig;
+	private DeliveryOptions config;
+	private DeliveryOptions parentConfig;
 	
 	private SingleSelection inheritEl;
 	private SingleSelection standardModeEl;
@@ -201,6 +202,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController
 				"1300px", "1320px", "1340px", "1360px", "1380px"
 		};
 		heightEl = uifactory.addDropdownSingleselect("height", "height.label", formLayout, keys, values, null);
+		heightEl.setExampleKey("automatic.need.js", null);
 
 		String[] cssValues = new String[] {
 				translate("option.css.none"), translate("option.css.openolat")
@@ -319,7 +321,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController
 		if(cfg != null && cfg.getOpenolatCss() != null && cfg.getOpenolatCss().booleanValue()) {
 			cssOptionEl.select(cssKeys[1], true);
 		} else {
-			cssOptionEl.select(cssKeys[0], false);//default none
+			cssOptionEl.select(cssKeys[0], true);//default none
 		}
 		
 		String encodingContent = (cfg == null ? null : cfg.getContentEncoding());
@@ -348,19 +350,27 @@ public class DeliveryOptionsConfigurationController extends FormBasicController
 		
 		if(!isInherit()) {
 			glossarEl.clearError();
-			if(glossarEl.isAtLeastSelected(1)) {
-				if(!jsOptionEl.isSelected(1)) {
-					allOk &= false;
-					glossarEl.setErrorKey("glossary.need.jQuery", null);
-				}	
-			}
-			
-			heightEl.clearError();
-			if(heightEl.isSelected(0)
-					&& (standardModeEl.isSelected(0) || jsOptionEl.isSelected(0))) {
-				heightEl.setErrorKey("automatic.need.js", null);
-				allOk = false;
+			if(glossarEl.isAtLeastSelected(1) && !jsOptionEl.isSelected(1)) {
+				allOk &= false;
+				glossarEl.setErrorKey("glossary.need.jQuery", null);
 			}
+			allOk &= validateDropdown(jsOptionEl);
+			allOk &= validateDropdown(heightEl);
+			allOk &= validateDropdown(cssOptionEl);
+			allOk &= validateDropdown(encodingContentEl);
+			allOk &= validateDropdown(encodingJSEl);
+		}
+		
+		return allOk;
+	}
+	
+	private boolean validateDropdown(SingleSelection element) {
+		boolean allOk = true;
+		
+		element.clearError();
+		if(element.isEnabled() && !element.isOneSelected()) {
+			element.setErrorKey("form.general.error", null);
+			allOk &= false;
 		}
 		
 		return allOk;
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties
index c91f65a8aa4b572507f299d8ee109e527c7cc1d0..b4066954a937320a00bc311101f4d7e4bdc1a255 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties
@@ -25,4 +25,4 @@ inherit.label=Standardwerte \u00FCbernehmen
 inherit=Aus Layouteinstellungen der Lernressource \u00FCbernehmen
 custom=Anpassen
 glossary.need.jQuery=Glossar braucht jQuery
-automatic.need.js=Automatic braucht javascript
+automatic.need.js=Automatic funktioniert besser mit Javascript
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties
index 434570f05dfaf8aa966576d8cc2abd019aea1142..5d6919df61336b70ee58540bb1c06674feecc4d8 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties
@@ -1,5 +1,5 @@
 #Thu Sep 03 11:09:03 CEST 2015
-automatic.need.js=Automatic needs javascript
+automatic.need.js=Automatic works better with Javascript enabled.
 command.download=Download file
 custom=Modify
 encoding.auto=Automatically
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties
index 636e5c6c5d5d9740f5e9c0e646740a8417a6b6f4..9d34aa2102988cade7b1b1ae4d9769f968672b63 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties
@@ -1,5 +1,5 @@
 #Sun Nov 29 10:58:54 CET 2015
-automatic.need.js=Automatique \u00E0 besoin de javascript
+automatic.need.js=Automatique fonctionne de mani\u00E8re optimale avec Javascript
 command.download=T\u00E9l\u00E9charger fichier
 custom=Modifi\u00E9
 encoding.auto=Automatiquement
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties
index bcc0daaa311cc2afdc5bd05d074513b75165cedd..5feb6a2f9ceac041fe9c702d7734269a9430c023 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties
@@ -1,5 +1,4 @@
 #Thu Jun 23 10:44:16 CEST 2016
-automatic.need.js=Automatico richiede javascript
 command.download=Scaricare file
 custom=Modificare
 encoding.auto=Automaticamente
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties
index af2e7cbc19bf6f446faeed57bcb34c8c04d760d8..35bd1c35fed853bc8c47f19fd18759786c3de116 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties
@@ -1,5 +1,4 @@
 #Mon Feb 08 20:04:53 CET 2016
-automatic.need.js=Automaticamente precisa de javascript
 command.download=Download
 custom=Modificar
 encoding.auto=Automaticamente
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties
index 42f2179e9d3cacc1192680935c12fd363782067c..7f001f204a62a11ffa3540bca6f18e71f985f597 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties
@@ -1,5 +1,4 @@
 #Sat Oct 08 10:07:07 CEST 2016
-automatic.need.js=\u81EA\u52A8\u5316\u9700\u8981javascript
 command.download=\u4E0B\u8F7D
 custom=\u4FEE\u6539
 encoding.auto=\u81EA\u52A8
diff --git a/src/main/java/org/olat/ims/cp/CPManagerImpl.java b/src/main/java/org/olat/ims/cp/CPManagerImpl.java
index a5b32f395137d31083fae33d65734368332657a2..b8e0c839d48ea0b7b84279062e21f5a7e28f2e6a 100644
--- a/src/main/java/org/olat/ims/cp/CPManagerImpl.java
+++ b/src/main/java/org/olat/ims/cp/CPManagerImpl.java
@@ -61,6 +61,7 @@ import org.olat.repository.RepositoryManager;
 import org.springframework.stereotype.Service;
 
 import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.security.ExplicitTypePermission;
 
 /**
  * The CP manager implementation.
@@ -81,6 +82,11 @@ public class CPManagerImpl implements CPManager {
 
 	private static XStream configXstream = XStreamHelper.createXStreamInstance();
 	static {
+		XStream.setupDefaultSecurity(configXstream);
+		Class<?>[] types = new Class[] {
+				CPPackageConfig.class, DeliveryOptions.class
+			};
+		configXstream.addPermission(new ExplicitTypePermission(types));
 		configXstream.alias("packageConfig", CPPackageConfig.class);
 		configXstream.alias("deliveryOptions", DeliveryOptions.class);
 	}
diff --git a/src/main/java/org/olat/modules/scorm/ScormMainManager.java b/src/main/java/org/olat/modules/scorm/ScormMainManager.java
index cce5b7225d4e7a83fe0437fbbd46bdd148d19008..a857220ebffd195b7a10d3ffdc78b02ff07f80ba 100644
--- a/src/main/java/org/olat/modules/scorm/ScormMainManager.java
+++ b/src/main/java/org/olat/modules/scorm/ScormMainManager.java
@@ -29,17 +29,18 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 
+import org.apache.logging.log4j.Logger;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.iframe.DeliveryOptions;
 import org.olat.core.id.OLATResourceable;
-import org.apache.logging.log4j.Logger;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.xml.XStreamHelper;
 import org.olat.fileresource.FileResourceManager;
 import org.springframework.stereotype.Service;
 
 import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.security.ExplicitTypePermission;
 
 
 /**
@@ -54,6 +55,11 @@ public class ScormMainManager {
 	private static final Logger log = Tracing.createLoggerFor(ScormMainManager.class);
 	private static XStream configXstream = XStreamHelper.createXStreamInstance();
 	static {
+		XStream.setupDefaultSecurity(configXstream);
+		Class<?>[] types = new Class[] {
+				ScormPackageConfig.class, DeliveryOptions.class
+			};
+		configXstream.addPermission(new ExplicitTypePermission(types));
 		configXstream.alias("packageConfig", ScormPackageConfig.class);
 		configXstream.alias("deliveryOptions", DeliveryOptions.class);
 	}