diff --git a/beat/web/backend/models.py b/beat/web/backend/models.py
index 0a48f07f8d14a7bfed4feef1544706449bab2d23..07ebb2a5c1415da33eb7127f00579b1a00dea70c 100644
--- a/beat/web/backend/models.py
+++ b/beat/web/backend/models.py
@@ -548,13 +548,23 @@ class Job(models.Model):
         # lock self - avoids concurrent update from scheduler/worker subsystem
         Job.objects.select_for_update().filter(pk=self.pk)
 
-        # checks for the presence of output caches - if they exist, skip
-        # and update related blocks
+        # checks for the presence of output caches - if they exist and
+        # checksum, skip and update related blocks
         if all([k.exists() for k in self.block.outputs.all()]):
-            self.status = Job.SKIPPED
-            self._cascade_updates() #to similar blocks
-            self.save()
-            return
+            if all([k.index_checksums() for k in self.block.outputs.all()]):
+                self.status = Job.SKIPPED
+                self.split_errors = 0
+                self.end_date = datetime.datetime.now()
+                self.save()
+                self._cascade_updates() #to similar blocks
+                self.block._update_state()
+                return
+            else:
+                logger.warning("Trying to make block `%s' runnable, but " \
+                    "indexes do not checksum - waiting...", self.block)
+                self.split_errors += 1
+                self.save()
+                return
 
         # else, flag it as runnable
         self.runnable_date = datetime.datetime.now()