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 4fa678097fd1872cb345e7aae8a06f63f015be26..2eb6621cd5e36c5b73ac37063f5de310af8893b9 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
@@ -955,27 +955,21 @@ public class AssessmentTestDisplayController extends BasicController implements
 				logError("CANNOT_FINISH_LINEAR_TEST_ITEM", null);
                 return;
             }
-		} catch (QtiCandidateStateException e) {
-            candidateAuditLogger.logAndThrowCandidateException(candidateSession, CandidateExceptionReason.CANNOT_FINISH_LINEAR_TEST_ITEM, e);
-         	logError("CANNOT_FINISH_LINEAR_TEST_ITEM", e);
-         	return;
 		} catch (RuntimeException e) {
 			candidateAuditLogger.logAndThrowCandidateException(candidateSession, CandidateExceptionReason.CANNOT_FINISH_LINEAR_TEST_ITEM, e);
          	logError("CANNOT_FINISH_LINEAR_TEST_ITEM", e);
-			return;// handleExplosion(e, candidateSession);
+			return;
 		}
 		 
 		// Update state
 		final Date requestTimestamp = ureq.getRequestTimestamp();
 	    final TestPlanNode nextItemNode = testSessionController.advanceItemLinear(requestTimestamp);
 	    
-	    //boolean terminated = nextItemNode == null && testSessionController.findNextEnterableTestPart() == null; 
-
+	    boolean terminated = nextItemNode == null && testSessionController.findNextEnterableTestPart() == null;
 	    // Record current result state
-	    final AssessmentResult assessmentResult = computeAndRecordTestAssessmentResult(requestTimestamp, testSessionState, false);
-
+	    final AssessmentResult assessmentResult = computeAndRecordTestAssessmentResult(requestTimestamp, testSessionState, terminated);
 	    /* If we ended the testPart and there are now no more available testParts, then finish the session now */
-	    if (nextItemNode==null && testSessionController.findNextEnterableTestPart()==null) {
+	    if (terminated) {
 	    		candidateSession = qtiService.finishTestSession(candidateSession, testSessionState, assessmentResult,
 	    			requestTimestamp, getDigitalSignatureOptions(), getIdentity());
 	    }