diff --git a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java
index d4cf066313d15c238ad557e2475dd3ec2527dc8d..c2e754eab5311bb32d26e6e6e644dc1f3d6b018f 100644
--- a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java
+++ b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java
@@ -406,6 +406,7 @@ public class OpenXMLDocument {
 	public void appendHtmlText(String html, Spacing spacing) {
 		if(!StringHelper.containsNonWhitespace(html)) return;
 		try {
+			html = cleanUpHTML(html);
 			SAXParser parser = new SAXParser();
 			parser.setContentHandler(new HTMLToOpenXMLHandler(this, spacing));
 			parser.parse(new InputSource(new StringReader(html)));
@@ -419,6 +420,7 @@ public class OpenXMLDocument {
 	public void appendHtmlText(String html, boolean newParagraph) {
 		if(!StringHelper.containsNonWhitespace(html)) return;
 		try {
+			html = cleanUpHTML(html);
 			SAXParser parser = new SAXParser();
 			Element paragraphEl = getParagraphToAppendTo(newParagraph);
 			parser.setContentHandler(new HTMLToOpenXMLHandler(this, paragraphEl));
@@ -433,6 +435,7 @@ public class OpenXMLDocument {
 	public void appendHtmlText(String html, boolean newParagraph, HTMLToOpenXMLHandler handler) {
 		if(!StringHelper.containsNonWhitespace(html)) return;
 		try {
+			html = cleanUpHTML(html);
 			SAXParser parser = new SAXParser();
 			Element paragraphEl = getParagraphToAppendTo(newParagraph);
 			handler.setInitialParagraph(paragraphEl);
@@ -445,6 +448,16 @@ public class OpenXMLDocument {
 		}
 	}
 	
+	/**
+	 * The Neko HTMl parser has some issues with <p/>.
+	 * 
+	 * @param html The HTML to clean up
+	 * @return HTML code which Neko understands
+	 */
+	private String cleanUpHTML(String html) {
+		return html.replace("<p/>", "<p></p>");
+	}
+	
 	public Node appendTable(Integer... width) {
 		Element tableEl = createTable(width);
 		return getCursor().appendChild(tableEl);
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentHtmlBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentHtmlBuilder.java
index 8050498787ba6d3f625c21bfb6ed3f19af6805f8..e05c47167a07e69afe9187e9817cd1a336b1f6f9 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentHtmlBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentHtmlBuilder.java
@@ -101,8 +101,11 @@ public class AssessmentHtmlBuilder {
 	
 	private String cleanUpNamespaces(StringOutput sb) {
 		String content = sb.toString();
+		content = content.replace(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", "");
 		content = content.replace("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", "");
+		content = content.replace("\n   xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\"", "");
 		content = content.replace("xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\"", "");
+		content = content.replace("\n   xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd\"", "");
 		content = content.replace("xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd\"", "");
 		return content.trim();
 	}