diff --git a/question/behaviour/adaptive/behaviour.php b/question/behaviour/adaptive/behaviour.php
index 42354b222e..6d13846fb8 100644
--- a/question/behaviour/adaptive/behaviour.php
+++ b/question/behaviour/adaptive/behaviour.php
@@ -144,7 +144,8 @@ class qbehaviour_adaptive extends question_behaviour_with_multiple_tries {
             $prevbest = 0;
         }
 
-        if ($this->question->is_same_response($response, $prevresponse)) {
+        if ($this->question->is_same_response($response, $prevresponse) &&
+            $this->is_complete_response($this->qa->get_last_step())) {
             return question_attempt::DISCARD;
         }
 
