diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
index ec41d7ecec83d04b665311b86f016815634475d2..145fcaf5dd04c6a7b7847cff43b7b32e73a3fb3a 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java
@@ -169,35 +169,45 @@ public class AssessmentResultController extends FormBasicController {
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		if(formLayout instanceof FormLayoutContainer) {
 			FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout;
-			layoutCont.contextPut("title", new Boolean(withTitle));
-			layoutCont.contextPut("print", new Boolean(withPrint));
-			layoutCont.contextPut("printCommand", Boolean.FALSE);
-			if(withPrint) {
-				layoutCont.contextPut("winid", "w" + layoutCont.getFormItemComponent().getDispatchID());
-				layoutCont.getFormItemComponent().addListener(this);
-			}
-
-			if(assessedIdentityInfosCtrl != null) {
-				layoutCont.put("assessedIdentityInfos", assessedIdentityInfosCtrl.getInitialComponent());
-			} else if(anonym) {
-				layoutCont.contextPut("anonym", Boolean.TRUE);
-			}
-			
-			Results results = new Results(false, "o_qtiassessment_icon", options.isMetadata());
-			results.setSessionState(testSessionState);
-			
-			layoutCont.contextPut("testResults", results);
-			TestResult testResult = assessmentResult.getTestResult();
-			if(testResult != null) {
-				extractOutcomeVariable(testResult.getItemVariables(), results);
-			}
-			
-			if(signatureMapperUri != null) {
-				String signatureUrl = signatureMapperUri + "/assessmentResultSignature.xml";
-				layoutCont.contextPut("signatureUrl", signatureUrl);
+			if(testSessionState == null || assessmentResult == null) {
+				// An author has deleted the test session before the user end it.
+				// It can happen with time limited tests.
+				Results results = new Results(false, "o_qtiassessment_icon", false);
+				layoutCont.contextPut("testResults", results);
+				layoutCont.contextPut("itemResults", new ArrayList<>());
+				layoutCont.contextPut("testSessionNotFound", Boolean.TRUE);
+			} else {
+				layoutCont.contextPut("title", new Boolean(withTitle));
+				layoutCont.contextPut("print", new Boolean(withPrint));
+				layoutCont.contextPut("printCommand", Boolean.FALSE);
+				layoutCont.contextPut("testSessionNotFound", Boolean.FALSE);
+				if(withPrint) {
+					layoutCont.contextPut("winid", "w" + layoutCont.getFormItemComponent().getDispatchID());
+					layoutCont.getFormItemComponent().addListener(this);
+				}
+	
+				if(assessedIdentityInfosCtrl != null) {
+					layoutCont.put("assessedIdentityInfos", assessedIdentityInfosCtrl.getInitialComponent());
+				} else if(anonym) {
+					layoutCont.contextPut("anonym", Boolean.TRUE);
+				}
+				
+				Results results = new Results(false, "o_qtiassessment_icon", options.isMetadata());
+				results.setSessionState(testSessionState);
+				
+				layoutCont.contextPut("testResults", results);
+				TestResult testResult = assessmentResult.getTestResult();
+				if(testResult != null) {
+					extractOutcomeVariable(testResult.getItemVariables(), results);
+				}
+				
+				if(signatureMapperUri != null) {
+					String signatureUrl = signatureMapperUri + "/assessmentResultSignature.xml";
+					layoutCont.contextPut("signatureUrl", signatureUrl);
+				}
+	
+				initFormSections(layoutCont);
 			}
-
-			initFormSections(layoutCont);
 		}
 	}
 	
diff --git a/src/main/java/org/olat/ims/qti21/ui/_content/assessment_results.html b/src/main/java/org/olat/ims/qti21/ui/_content/assessment_results.html
index 6792bdc86f492045bae1ffffcafd80efa2e09bb2..d26bd43f3455bdf3fed7f2d45d7bc2f547322648 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_content/assessment_results.html
+++ b/src/main/java/org/olat/ims/qti21/ui/_content/assessment_results.html
@@ -23,6 +23,9 @@
 #if($r.visible("assessedIdentityInfos"))
 	$r.render("assessedIdentityInfos")
 #end
+#if($r.isNotNull($testSessionNotFound) && $testSessionNotFound)
+<div class="o_warning">$r.translate("assessment.test.session.reseted")</div>
+#end
 #if($testResults.metadataVisible)
 <div class="panel panel-default o_personal o_sel_results_details">
   	<div class="panel-heading">
diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
index 29e046fa1007a3a16fdf9da17623af7adf3686d7..eb62502297f3db6ca3ad77c96b26c6763e5a876e 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
@@ -41,6 +41,7 @@ assessment.test.nextQuestion=N\u00E4chste Frage
 assessment.test.notReleased=$org.olat.ims.qti\:notReleased
 assessment.test.open=Offen
 assessment.test.questionMenu=Menu-Navigation Test
+assessment.test.session.reseted=Die Testergebnisse wurde wahrscheinlich von dem Kursadministrator zur\u00FCckgesetzt.
 assessment.test.suspended=Der Test wurde unterbrochen.
 assessment.testpart.config=Test part
 attemptsleft=$org.olat.modules.iq\:attemptsleft
diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
index 9e63b93db66766e1a9fd06559d4ad2fc2108b2bc..a092c45ae50eaa45cad3b0648b4ec553521f76c9 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
@@ -41,6 +41,7 @@ assessment.test.nextQuestion=Next question
 assessment.test.notReleased=$org.olat.ims.qti\:notReleased
 assessment.test.open=Open
 assessment.test.questionMenu=Test question menu
+assessment.test.session.reseted=The results of the test was probably reseted by a course administrator.
 assessment.test.suspended=The test has been suspended.
 assessment.testpart.config=Test part
 attemptsleft=$org.olat.modules.iq\:attemptsleft