diff --git a/lib/questionlib.php b/lib/questionlib.php index 9592a5220b9..bdb7b98fbf7 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -1064,8 +1064,10 @@ function question_process_responses(&$question, &$state, $action, $cmoptions, &$ // Check for unchanged responses (exactly unchanged, not equivalent). // We also have to catch questions that the student has not yet attempted - $sameresponses = !$state->last_graded->event == QUESTION_EVENTOPEN && - $QTYPES[$question->qtype]->compare_responses($question, $action, $state); + $sameresponses = $QTYPES[$question->qtype]->compare_responses($question, $action, $state); + if ($state->last_graded->event == QUESTION_EVENTOPEN && question_isgradingevent($action->event)) { + $sameresponses = false; + } // If the response has not been changed then we do not have to process it again // unless the attempt is closing or validation is requested