diff --git a/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php b/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php
index 70aa1330b96..fa3b6dc4348 100644
--- a/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php
+++ b/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php
@@ -272,11 +272,11 @@ class all_calculated_for_qubaid_condition {
         $timemodified = time();
 
         foreach ($this->get_all_slots() as $slot) {
-            $this->for_slot($slot)->cache($qubaids);
+            $this->for_slot($slot)->cache($qubaids, $timemodified);
         }
 
         foreach ($this->get_all_subq_ids() as $subqid) {
-            $this->for_subq($subqid)->cache($qubaids);
+            $this->for_subq($subqid)->cache($qubaids, $timemodified);
         }
 
         $transaction->allow_commit();
diff --git a/question/classes/statistics/questions/calculated.php b/question/classes/statistics/questions/calculated.php
index e896ca9a7f9..763c0000130 100644
--- a/question/classes/statistics/questions/calculated.php
+++ b/question/classes/statistics/questions/calculated.php
@@ -219,12 +219,13 @@ class calculated {
      * Cache calculated stats stored in this object in 'question_statistics' table.
      *
      * @param \qubaid_condition $qubaids
+     * @param int|null $timemodified the modified time to store. Defaults to the current time.
      */
-    public function cache($qubaids) {
+    public function cache($qubaids, $timemodified = null) {
         global $DB;
         $toinsert = new \stdClass();
         $toinsert->hashcode = $qubaids->get_hash_code();
-        $toinsert->timemodified = time();
+        $toinsert->timemodified = $timemodified ?? time();
         foreach ($this->fieldsindb as $field) {
             $toinsert->{$field} = $this->{$field};
         }
@@ -232,7 +233,7 @@ class calculated {
 
         if ($this->get_variants()) {
             foreach ($this->variantstats as $variantstat) {
-                $variantstat->cache($qubaids);
+                $variantstat->cache($qubaids, $timemodified);
             }
         }
     }