diff --git a/include/class.cron.php b/include/class.cron.php
index 29265f8056a88d5b62c134e7cf96246fd5ebda0c..257926e253fe1662b0630548b62e483bffe20e48 100644
--- a/include/class.cron.php
+++ b/include/class.cron.php
@@ -41,6 +41,10 @@ class Cron {
     }
 
     function run(){ //called by outside cron NOT autocron
+        global $ost;
+        if (!$ost || $ost->isUpgradePending())
+            return;
+
         self::MailFetcher();
         self::TicketMonitor();
         self::PurgeLogs();
diff --git a/scp/autocron.php b/scp/autocron.php
index a57071b78a7fc468b9395432a38345b58960f130..ec7cb4c744b6b170da3d5186d09b59fc0e424342 100644
--- a/scp/autocron.php
+++ b/scp/autocron.php
@@ -32,7 +32,7 @@ ob_start(); //Keep the image output clean. Hide our dirt.
 $sec=time()-$_SESSION['lastcroncall'];
 $caller = $thisstaff->getUserName();
 
-if($sec>180): //user can call cron once every 3 minutes.
+if($sec>180 && $ost && !$ost->isUpgradePending()): //user can call cron once every 3 minutes.
 require_once(INCLUDE_DIR.'class.cron.php');
 
 $thisstaff = null; //Clear staff obj to avoid false credit internal notes & auto-assignment