diff --git a/beat/web/experiments/models.py b/beat/web/experiments/models.py
index 2a6d9a6eb7e89a9a8d5199e660ff94672274efb2..c9a88c8ddc736f31bdd606cfd80b2045c90d9fab 100644
--- a/beat/web/experiments/models.py
+++ b/beat/web/experiments/models.py
@@ -757,14 +757,6 @@ class Experiment(Shareable):
             else:
                 self.start_date = datetime.now()
 
-        if self.end_date is None:
-            d = self.blocks.filter(end_date__isnull=False).\
-                order_by('-end_date')
-            if d:
-                self.end_date = d.first().end_date
-            else:
-                self.end_date = datetime.now()
-
         block_statuses = self.blocks.values_list('status', flat=True)
 
         # Process main state and state from job results
@@ -786,6 +778,16 @@ class Experiment(Shareable):
         else:
             self.status = Experiment.SCHEDULED
 
+        # Set end date if experiment is done
+        if self.is_done() and self.end_date is None:
+            d = self.blocks.filter(end_date__isnull=False).\
+                order_by('-end_date')
+            if d:
+                self.end_date = d.first().end_date
+            else:
+                self.end_date = datetime.now()
+
+
         self.save()