diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
index ea2f849f642726307482999b9f5b6ed9150caea8..5b5719683d5d624cc5809d47e552f9ddf4c5f763 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
@@ -45,6 +45,7 @@ error.cardinality.answer=Single choice erlaubt nur eine korrekte Antwort.
 error.double=$org.olat.ims.qti21.ui\:error.double
 error.import.question=Die Frage konnte wegen eine unerwartete Fehler nicht importiert werden
 error.integer=$org.olat.ims.qti21.ui\:error.integer
+error.integer.positive=Es muss ein Zahl zwischen 0 und 2147483647.
 error.lock=Dieser Test/Fragebogen wird momentan vom Benutzer {0} editiert und ist deshalb gesperrt.
 error.lock.same.user=$\:error.lock $org.olat.core\:lock.same.user.different.window
 error.lock.title=Test gesperrt
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties
index ae04c18729f848f0227df4d76463847a521c5a8e..c1a67b515bb23dda7c45af802434799bb16ad29d 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties
@@ -45,6 +45,7 @@ error.cardinality.answer=Single choice allow only one correct answer.
 error.double=$org.olat.ims.qti21.ui\:error.double
 error.import.question=An unexpected error happens during import of a question.
 error.integer=$org.olat.ims.qti21.ui\:error.integer
+error.integer.positive=It needs a number between 0 and 2147483647.
 error.lock=This test/questionnaire is being edited by user {0} at the moment and therefore locked.
 error.lock.same.user=$\:error.lock $org.olat.core\:lock.same.user.different.window
 error.lock.title=Test locked
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties
index 4d68ca59b8f3e4b4d443ff524f54df88cd63c2e6..495bd011bed9a0e72b4b7b90a3a248054e69e012 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties
@@ -46,6 +46,7 @@ error.cardinality.answer=Choix simple n'autorise qu'une seule r\u00E9ponse corre
 error.double=$org.olat.ims.qti21.ui\:error.double
 error.import.question=Une erreur inattendue s'est produite pendant l'importation de la question.
 error.integer=$org.olat.ims.qti21.ui\:error.integer
+error.integer.positive=Le nombre doit se situer entre 0 et 2147483647.
 error.lock=Ce test / questionnaire est \u00E9dit\u00E9 par {0} en ce moment et est bloqu\u00E9.
 error.lock.same.user=$\:error.lock $org.olat.core\:lock.same.user.different.window
 error.lock.title=Test bloqu\u00E9
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java
index bde5a2dd3f39088978f480f61e55e0d084e6c1d3..5bdc4dba55c315b72330939b0fdd83fec4ea2e74 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java
@@ -146,7 +146,7 @@ public class EssayEditorController extends FormBasicController {
 	public Integer getValue(TextElement integerEl) {
 		String val = integerEl.getValue();
 		Integer integer = null;
-		if(StringHelper.isLong(val)) {
+		if(isInteger(val)) {
 			return Integer.parseInt(val);
 		}
 		return integer;
@@ -154,7 +154,7 @@ public class EssayEditorController extends FormBasicController {
 
 	@Override
 	protected boolean validateFormLogic(UserRequest ureq) {
-		boolean allOk = true;
+		boolean allOk = super.validateFormLogic(ureq);
 
 		titleEl.clearError();
 		if(!StringHelper.containsNonWhitespace(titleEl.getValue())) {
@@ -166,7 +166,7 @@ public class EssayEditorController extends FormBasicController {
 		allOk &= validateInteger(heightEl);
 		allOk &= validateInteger(minWordsEl);
 		allOk &= validateInteger(maxWordsEl);
-		return allOk & super.validateFormLogic(ureq);
+		return allOk;
 	}
 	
 	private boolean validateInteger(TextElement integerEl) {
@@ -177,11 +177,26 @@ public class EssayEditorController extends FormBasicController {
 			if(!StringHelper.isLong(integerEl.getValue())) {
 				integerEl.setErrorKey("form.error.nointeger", null);
 				allOk &= false;
+			} else if(!isInteger(integerEl.getValue())) {
+				integerEl.setErrorKey("error.integer.positive", null);
+				allOk &= false;
 			}
 		}
 		
 		return allOk;
 	}
+	
+	private boolean isInteger(String val) {
+		if(StringHelper.isLong(val)) {
+			try {
+				int num = Integer.parseInt(val);
+				return num >= 0;
+			} catch(NumberFormatException e) {
+				return false;
+			}
+		}
+		return false;
+	}
 
 	@Override
 	protected void formOK(UserRequest ureq) {