diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java
index f9c3c3bfc4d2ff3b81f77cde717a17ff3c4bf1a4..ec4398e7519ee80584376f951ab60945dd8869ff 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java
@@ -58,6 +58,7 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener {
 	
 	private final boolean authorMode;
 	private final boolean needManualCorrection;
+	private AtomicBoolean incrementAttempts = new AtomicBoolean(true);
 
 	private AtomicBoolean start = new AtomicBoolean(true);
 	private AtomicBoolean close = new AtomicBoolean(true);
@@ -140,6 +141,11 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener {
 		assessmentEntry.setPassed(submittedPass);
 		assessmentEntry.setCompletion(completion);
 		assessmentEntry.setAssessmentId(assessmentId);
+		if(incrementAttempts.getAndSet(false)) {
+			int currentAttempts = assessmentEntry.getAttempts() == null ? 0 : assessmentEntry.getAttempts().intValue();
+			assessmentEntry.setAttempts(currentAttempts + 1);
+		}
+		
 		assessmentEntry = assessmentService.updateAssessmentEntry(assessmentEntry);
 		
 		boolean firstClose = close.getAndSet(false);