diff --git a/lib/classes/cron.php b/lib/classes/cron.php
index 10f62c18a50..04f6094aa77 100644
--- a/lib/classes/cron.php
+++ b/lib/classes/cron.php
@@ -348,6 +348,10 @@ class cron {
         $predbqueries = null;
         $predbqueries = $DB->perf_get_queries();
         $pretime = microtime(1);
+
+        // Ensure that we have a clean session with the correct cron user.
+        self::setup_user();
+
         try {
             get_mailer('buffer');
             self::prepare_core_renderer();
@@ -446,6 +450,9 @@ class cron {
             }
 
             self::setup_user($user);
+        } else {
+            // No user specified, ensure that we have a clean session with the correct cron user.
+            self::setup_user();
         }
 
         try {