diff --git a/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html b/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html
index 263bcd259d6c99cf30278082041aa15f21a930e6..cf1a3feb375edf69eb45272be31de6ecaab514d7 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html
+++ b/src/main/java/org/olat/core/commons/fullWebApp/_content/fullwebapplayout.html
@@ -52,29 +52,30 @@ function o_start() {
 	o_info.initialPageLoadFinished = true;
 }
 function o_mathjax(fct_success) {
-	jQuery.ajax("${r.mathJaxCdn()}MathJax.js?config=TeX-AMS-MML_HTMLorMML", {
+	window.MathJax = {
+		extensions: ["jsMath2jax.js"],
+		messageStyle: 'none',
+		showProcessingMessages: false,
+		showMathMenu: false,
+		menuSettings: { },
+		jsMath2jax: {
+			preview: "none"
+		},
+		tex2jax: {
+			ignoreClass: "math"
+		},
+		"HTML-CSS": {
+		    EqnChunk: 5, EqnChunkFactor: 1, EqnChunkDelay: 100
+		},
+		"fast-preview": {
+			disabled: true
+		}
+	}
+	jQuery.ajax("${r.mathJaxCdn()}MathJax.js?config=${r.mathJaxConfig()}", {
 		cache: true,
 		dataType: "script",
+		crossDomain: true,
 		success: function() {
-	    	MathJax.Hub.Config({
-				extensions: ["jsMath2jax.js"],
-				messageStyle: 'none',
-				showProcessingMessages: false,
-				showMathMenu: false,
-				menuSettings: { },
-				jsMath2jax: {
-					preview: "none"
-				},
-				tex2jax: {
-					ignoreClass: "math"
-				},
-				"HTML-CSS": {
-				    EqnChunk: 5, EqnChunkFactor: 1, EqnChunkDelay: 100
-				},
-				"fast-preview": {
-					disabled: true
-				}
-			});
 	    	if(!(typeof fct_success === "undefined")) {
 	    		fct_success();
 	    	}
@@ -369,4 +370,4 @@ jQuery(function() {
 	o_initEmPxFactor(); 
 });
 /* ]]> */
-</script></div></body></html>
\ No newline at end of file
+</script></div></body></html>
diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDeliveryMapper.java b/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDeliveryMapper.java
index 57ab19ecb5c27d99ff30e1aeb796bb9a5be4adaa..c181daa9d0029f628ca058bff9ea2151f32651ad 100644
--- a/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDeliveryMapper.java
+++ b/src/main/java/org/olat/core/gui/control/generic/iframe/IFrameDeliveryMapper.java
@@ -597,33 +597,9 @@ public class IFrameDeliveryMapper implements Mapper {
 			appendStaticJs("js/prototype/prototype.js");
 		}
 		
-		/*
-		 MathJax.Hub.Config({
-			extensions: ["jsMath2jax.js"],
-			messageStyle: 'none',
-			showProcessingMessages: false,
-			showMathMenu: false,
-			menuSettings: { },
-			jsMath2jax: {
-				preview: "none"
-			},
-			tex2jax: {
-				ignoreClass: "math"
-			},
-			"HTML-CSS": {
-			    EqnChunk: 5, EqnChunkFactor: 1, EqnChunkDelay: 100
-			},
-			"fast-preview": {
-				disabled: true
-			}
-		});
-		*/
 		public void appendJsMath() {
-			append("<script type=\"text/javascript\" src=\"");
-			append(WebappHelper.getMathJaxCdn());
-			append("MathJax.js?config=TeX-AMS-MML_HTMLorMML\"></script>\n");
 			append("<script type=\"text/javascript\">\n");
-			append("MathJax.Hub.Config({\n");	
+			append("window.MathJax = {\n");
 			append(" extensions: [\"jsMath2jax.js\"],\n");
 			append(" messageStyle: 'none',\n");
 			append(" showProcessingMessages: false,\n");
@@ -641,8 +617,13 @@ public class IFrameDeliveryMapper implements Mapper {
 			append(" \"fast-preview\": {\n");
 			append("   disabled: true\n");
 			append(" }\n");
-			append("});");
+			append("};");
 			append("</script>");
+			append("<script type=\"text/javascript\" src=\"");
+			append(WebappHelper.getMathJaxCdn());
+			append("MathJax.js?config=");
+			append(WebappHelper.getMathJaxConfig());
+			append("\"></script>\n");
 		}
 		
 		public void appendGlossary() {
diff --git a/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java b/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java
index ddb70d8a33b1faa681d7200d91f7c9f6b9292c2e..f9f420dd5503060c278c1a26d281c4c7b78b9a73 100644
--- a/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java
+++ b/src/main/java/org/olat/core/gui/render/velocity/VelocityRenderDecorator.java
@@ -366,6 +366,12 @@ public class VelocityRenderDecorator implements Closeable {
 		}
 		return sb;
 	}
+
+	public StringOutput mathJaxConfig() {
+		StringOutput sb = new StringOutput(100);
+		sb.append(WebappHelper.getMathJaxConfig());
+		return sb;
+	}
 	
 	public StringOutput contextPath() {
 		StringOutput sb = new StringOutput(100);
diff --git a/src/main/java/org/olat/core/util/WebappHelper.java b/src/main/java/org/olat/core/util/WebappHelper.java
index 7fe810e3be566c02b04549d68785d0286cecc7b1..9b9431688e968da772d580a15e8ac3b1ab8ff70a 100644
--- a/src/main/java/org/olat/core/util/WebappHelper.java
+++ b/src/main/java/org/olat/core/util/WebappHelper.java
@@ -76,6 +76,7 @@ public class WebappHelper implements Initializable, Destroyable, ServletContextA
 	private static long timeOfServerStartup = System.currentTimeMillis();
 	
 	private static String mathJaxCdn;
+	private static String mathJaxConfig;
 	private static String mobileContext;
 	
 	/** need to set this at least once before the actual request, since we cannot extract it from the servletContext, 
@@ -304,6 +305,14 @@ public class WebappHelper implements Initializable, Destroyable, ServletContextA
 		WebappHelper.mathJaxCdn = mathJaxCdn;
 	}
 
+	public static String getMathJaxConfig() {
+		return mathJaxConfig;
+	}
+
+	public void setMathJaxConfig(String mathJaxConfig) {
+		WebappHelper.mathJaxConfig = mathJaxConfig;
+	}
+
 	public void setFullPathToSrc(String fullPathToSrc) {
 		File path = new File(fullPathToSrc);
 		if (path.exists()) {
diff --git a/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml b/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml
index 9dfa12cb1664b8ce59ba5ae8340f72c4e0b83ee3..42bb91e467cf2ecdbf158b4e23929c6f4a1f10b0 100644
--- a/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml
+++ b/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml
@@ -48,6 +48,7 @@
 		<property name="applicationName" value="${application.name}" />
 		<property name="mobileContext" value="${mobile.context}" />
 		<property name="mathJaxCdn" value="${mathjax.cdn}"/>
+		<property name="mathJaxConfig" value="${mathjax.config}"/>
 	</bean>
 
 	<bean id="org.olat.core.helpers.Settings" class="org.olat.core.helpers.Settings" depends-on="org.olat.core.util.WebappHelper">
diff --git a/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html b/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html
index 8440db543e322e61088dd7958d1b83e2c3051505..010af363694a44c5ef88ef923598c1199e3d6ccc 100644
--- a/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html
+++ b/src/main/java/org/olat/ims/qti21/resultexport/_content/qti21results.html
@@ -26,29 +26,30 @@ function setFlexiFormDirtyByListener(e){
 	//
 }
 function o_mathjax() {
-	jQuery.ajax("${r.mathJaxCdnFullUrl()}MathJax.js?config=TeX-AMS-MML_HTMLorMML", {
+	window.MathJax = {
+			extensions: ["jsMath2jax.js"],
+			messageStyle: 'none',
+			showProcessingMessages: false,
+			showMathMenu: false,
+			menuSettings: { },
+			jsMath2jax: {
+				preview: "none"
+			},
+			tex2jax: {
+				ignoreClass: "math"
+			},
+			"HTML-CSS": {
+			    EqnChunk: 5, EqnChunkFactor: 1, EqnChunkDelay: 100
+			},
+			"fast-preview": {
+				disabled: true
+			}
+		}
+	jQuery.ajax("${r.mathJaxCdnFullUrl()}MathJax.js?config=${r.mathJaxConfig()}", {
 		cache: true,
 		dataType: "script",
+		crossDomain: true,
 		success: function() {
-	    	MathJax.Hub.Config({
-				extensions: ["jsMath2jax.js"],
-				messageStyle: 'none',
-				showProcessingMessages: false,
-				showMathMenu: false,
-				menuSettings: { },
-				jsMath2jax: {
-					preview: "none"
-				},
-				tex2jax: {
-					ignoreClass: "math"
-				},
-				"HTML-CSS": {
-				    EqnChunk: 5, EqnChunkFactor: 1, EqnChunkDelay: 100
-				},
-				"fast-preview": {
-					disabled: true
-				}
-			});
 		}
 	});
 }
@@ -70,4 +71,4 @@ jQuery(function() {
 <body class="o_page_margins">
 	<div id="o_main">$r.render("results")</div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/src/main/java/org/olat/repository/ui/catalog/CatalogEntryEditController.java b/src/main/java/org/olat/repository/ui/catalog/CatalogEntryEditController.java
index fb766096e21fa9aa64db3fe6314faf656c481ab4..6736835495f611341d4d4c14a9a20dd0a1e55ec8 100644
--- a/src/main/java/org/olat/repository/ui/catalog/CatalogEntryEditController.java
+++ b/src/main/java/org/olat/repository/ui/catalog/CatalogEntryEditController.java
@@ -45,6 +45,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.FileElementEvent
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 import org.olat.core.util.WebappHelper;
 import org.olat.core.util.vfs.LocalFileImpl;
@@ -164,8 +165,30 @@ public class CatalogEntryEditController extends FormBasicController {
 	public void setElementCssClass(String cssClass) {
 		flc.setElementCssClass(cssClass);
 	}
-	
-	
+
+	@Override
+	protected boolean validateFormLogic(UserRequest ureq) {
+		boolean allOk = true;
+		
+		nameEl.clearError();
+		if(StringHelper.containsNonWhitespace(nameEl.getValue())) {
+			if(nameEl.getValue().length() > 99) {
+				nameEl.setErrorKey("input.toolong", new String[]{ "100" });
+				allOk &= false;
+			}
+		} else {
+			nameEl.setErrorKey("form.legende.mandatory", null);
+			allOk &= false;
+		}
+		
+		styleEl.clearError();
+		if(!styleEl.isOneSelected()) {
+			styleEl.setErrorKey("form.legende.mandatory", null);
+			allOk &= false;
+		}
+
+		return allOk & super.validateFormLogic(ureq);
+	}
 
 	@Override
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties
index 8d8ae453277057d9a4228613bb8a0292a977fb7a..15bed8ac593825b47e93aa4f72cec02beb8a9624 100644
--- a/src/main/resources/serviceconfig/olat.properties
+++ b/src/main/resources/serviceconfig/olat.properties
@@ -537,6 +537,7 @@ allow.cross.origin.domain.values=*,www.frentix.com
 ########################################################################
 
 mathjax.cdn=//mathjax.openolat.org/mathjax/2.7-latest/
+mathjax.config=TeX-AMS-MML_HTMLorMML
 
 ########################################################################
 # Database settings