diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
index fb1293c7ae8871fb4264b7cc9fc38a73450641d0..e0d36e83ee553e6ab547dba8e593129bec7c774a 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
@@ -1468,7 +1468,12 @@ public class AssessmentTestDisplayController extends BasicController implements
 
 	//public CandidateSession endCurrentTestPart(final CandidateSessionContext candidateSessionContext)
 	private void processEndTestPart(UserRequest ureq) {
-		 /* Update state */
+		if(testSessionController.getCurrentTestPart() == null && testSessionController.getTestSessionState().isEnded()) {
+        	// try to end an already ended test
+			return;
+        }
+		
+		/* Update state */
         final Date requestTimestamp = ureq.getRequestTimestamp();
         testSessionController.endCurrentTestPart(requestTimestamp);