diff --git a/src/main/java/org/olat/modules/iq/IQDisplayController.java b/src/main/java/org/olat/modules/iq/IQDisplayController.java
index 77393aee66920d5b8850fe2f9d9decacd64f8d31..cd69560c275233be4f285d853aa083d30198431b 100644
--- a/src/main/java/org/olat/modules/iq/IQDisplayController.java
+++ b/src/main/java/org/olat/modules/iq/IQDisplayController.java
@@ -371,11 +371,14 @@ public class IQDisplayController extends DefaultController implements GenericEve
 		qtistatus.setQuestionProgressLabel(
 					translator.translate(
 								"question.progress.answered", new String[] {
-										""+ai.getAssessmentContext().getItemsAnsweredCount(),
+										""+answered,
 										qtistatus.getMaxQuestions()
 								}
 					)
 		);
+		// tell velocity if all questions are answered or there are unanswered questions  
+		int maxQuestions = Integer.parseInt(qtistatus.getMaxQuestions());
+		myContent.contextPut("allQuestionsAnswered", answered == maxQuestions);
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/modules/iq/_content/qti.html b/src/main/java/org/olat/modules/iq/_content/qti.html
index 3ec81cb548cd2fcd6d03b3cb18d0432faac22244..3954fbf2b55f33f5995165afeac2ac7bb073c7f9 100644
--- a/src/main/java/org/olat/modules/iq/_content/qti.html
+++ b/src/main/java/org/olat/modules/iq/_content/qti.html
@@ -34,7 +34,7 @@ function confirmSuspend() {
 		<strong>$qtistatus.getTitle()</strong>
   	#if ($qtistatus.isOpen())
 		#if ($qtistatus.isSurvey())
-			<a class="b_button" href="$r.commandURI("sas")" onclick="{if (o2cl()) return confirmSubmit(); else return false;}"><span>$r.translate("submitSurvey")</span></a>
+			<a class="b_button #if($allQuestionsAnswered) b_button_dirty #end" href="$r.commandURI("sas")" onclick="{if (o2cl()) return confirmSubmit(); else return false;}"><span>$r.translate("submitSurvey")</span></a>
 			#if ($enableCancel)
 				<a class="b_button" href="$r.commandURI("cancel")" onclick="{if (o2cl()) return confirmCancel(); else return false;}"><span>$r.translate("cancelSurvey")</span></a>
 			#end
@@ -42,7 +42,7 @@ function confirmSuspend() {
 				<a class="b_button" href="$r.commandURI("suspend")" onclick="{if (o2cl()) return confirmSuspend(); else return false;}"><span>$r.translate("suspendSurvey")</span></a>
 			#end
 		#else
-			<a class="b_button" href="$r.commandURI("sas")" onclick="{if (o2cl()) return confirmSubmit(); else return false;}"><span>$r.translate("submitAssess")</span></a>
+			<a class="b_button #if($allQuestionsAnswered) b_button_dirty #end" href="$r.commandURI("sas")" onclick="{if (o2cl()) return confirmSubmit(); else return false;}"><span>$r.translate("submitAssess")</span></a>
 			#if ($enableCancel)
 				<a class="b_button" href="$r.commandURI("cancel")" onclick="{if (o2cl()) return confirmCancel(); else return false;}"><span>$r.translate("cancelAssess")</span></a>
 			#end