diff --git a/src/main/java/org/olat/course/editor/NodeConfigFormController.java b/src/main/java/org/olat/course/editor/NodeConfigFormController.java
index f98435d7e064af4b7d56987da5b6ed2598af5d67..307cda989ba1d4526d28fcedc7c7db9aef076dfb 100644
--- a/src/main/java/org/olat/course/editor/NodeConfigFormController.java
+++ b/src/main/java/org/olat/course/editor/NodeConfigFormController.java
@@ -45,9 +45,9 @@ public class NodeConfigFormController extends FormBasicController {
 	/**
 	 * Maximum length of a course's short title.
 	 */
-	public final static int SHORT_TITLE_MAX_LENGTH =25;
+	public static final int SHORT_TITLE_MAX_LENGTH =25;
 	
-	private final static String[] displayOptionsKeys = new String[]{
+	private static final String[] displayOptionsKeys = new String[]{
 		CourseNode.DISPLAY_OPTS_SHORT_TITLE_DESCRIPTION_CONTENT,
 		CourseNode.DISPLAY_OPTS_TITLE_DESCRIPTION_CONTENT,
 		CourseNode.DISPLAY_OPTS_SHORT_TITLE_CONTENT,
@@ -161,10 +161,14 @@ public class NodeConfigFormController extends FormBasicController {
 				translate("nodeConfigForm.title_content"),
 				translate("nodeConfigForm.content_only")};
 		displayOptions = uifactory.addDropdownSingleselect("displayOptions", "nodeConfigForm.display_options", formLayout, displayOptionsKeys, values, null);
-		displayOptions.select(displayOption, true);
+		for(String displayOptionsKey:displayOptionsKeys) {
+			if(displayOptionsKey.equals(displayOption)) {
+				displayOptions.select(displayOption, true);
+			}
+		}
 		
 		// Create submit and cancel buttons
-		final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator());
+		FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator());
 		formLayout.add(buttonLayout);
 		uifactory.addFormSubmitButton("nodeConfigForm.save", buttonLayout)
 			.setElementCssClass("o_sel_node_editor_submit");
@@ -176,20 +180,23 @@ public class NodeConfigFormController extends FormBasicController {
 	 */
 	@Override
 	protected boolean validateFormLogic(UserRequest ureq) {
-		boolean shortTitleOk = true;
+		boolean allOk = super.validateFormLogic(ureq);
+
+		shortTitle.clearError();
 		if (!StringHelper.containsNonWhitespace(shortTitle.getValue())) {
 			// the short title is mandatory
-			shortTitle.setErrorKey("nodeConfigForm.menumust", new String[] {});
-			shortTitleOk = false;
+			shortTitle.setErrorKey("nodeConfigForm.menumust", null);
+			allOk &= false;
 		} else if (shortTitle.hasError()) {
-			shortTitleOk = false;
+			allOk &= false;
 		}
-		if (shortTitleOk && super.validateFormLogic(ureq)) {
-			shortTitle.clearError();
-			return true;
-		} else {
-			return false;
+		
+		if(!displayOptions.isOneSelected()) {
+			displayOptions.setErrorKey("form.legende.mandatory", null);
+			allOk &= false;
 		}
+
+		return allOk;
 	}
 
 	/**
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java b/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java
index 77719d752574c4333c200019eb1591d2b655efbd..64d74d99aef864da13e7e96f03a1090ee03519e4 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java
@@ -205,16 +205,25 @@ public class Onyx38ToQtiWorksHandler extends DefaultHandler2 {
 	
 	private void writeAssessmentElement(String qName, Attributes attributes)
 	throws XMLStreamException {
+		boolean hasToolName = false;
+		boolean hasVersion = false;
 		xtw.writeStartElement(qName);
 		int numOfAttributes = attributes.getLength();
 		for(int i=0;i<numOfAttributes; i++) {
 			String attrQName = attributes.getQName(i);
 			String attrValue = attributes.getValue(i);
 			xtw.writeAttribute(attrQName, attrValue);
+			if("toolName".equals(attrQName)) {
+				hasToolName = true;
+			} else if("toolVersion".equals(attrQName)) {
+				hasVersion = true;
+			}
 		}
 		
-		xtw.writeAttribute("toolName", "Onyx Editor");
-		if(StringHelper.containsNonWhitespace(version)) {
+		if(!hasToolName) {
+			xtw.writeAttribute("toolName", "Onyx Editor");
+		}
+		if(!hasVersion && StringHelper.containsNonWhitespace(version)) {
 			xtw.writeAttribute("toolVersion", version);
 		}
 	}
diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java
index 7f5f951d1593ccaa34ad45871b3f3134082336dc..d55c8de00f456c04f0a981bfaf46bc8ee633f65b 100644
--- a/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java
@@ -147,20 +147,20 @@ public class QTI21AdminController extends FormBasicController {
 
 	@Override
 	protected boolean validateFormLogic(UserRequest ureq) {
-		boolean allOk = true;
+		boolean allOk = super.validateFormLogic(ureq);
 		
 		if(certificateEl.getUploadFile() != null) {
 			File uploadedCertificate = certificateEl.getUploadFile();
 			if(uploadedCertificate != null && uploadedCertificate.exists()) {
-				validateCertificatePassword(uploadedCertificate);
+				allOk &= validateCertificatePassword(uploadedCertificate);
 			}
 		} else {
 			String password = certificatePasswordEl.getValue();
 			if(!PASSWORD_PLACEHOLDER.equals(password) && certificateEl.getInitialFile() != null) {
-				validateCertificatePassword(certificateEl.getInitialFile());
+				allOk &= validateCertificatePassword(certificateEl.getInitialFile());
 			}
 		}
-		return allOk & super.validateFormLogic(ureq);
+		return allOk;
 	}
 	
 	private boolean validateCertificatePassword(File file) {