diff --git a/atdb/taskdatabase/services/activities.py b/atdb/taskdatabase/services/activities.py
index edc22763aa3bf6378052eb5c92f5199f9613a6d4..545084888b61398e55b0669a84a7ca79c594b402 100644
--- a/atdb/taskdatabase/services/activities.py
+++ b/atdb/taskdatabase/services/activities.py
@@ -77,14 +77,10 @@ def associate_task_with_activity(task, save_task=True):
 
             activity = Activity(sas_id=task.sas_id,
                                 project=task.project,
+                                workflow_id = task.workflow.id,
                                 filter=task.filter)
             activity.save()
 
-
-        # update activity
-        activity.filter = task.filter
-        activity.workflow_id = task.workflow.id
-
         task.activity = activity
         if save_task:
             task.save()
@@ -163,4 +159,12 @@ def update_activity(task):
 
     # only save when changed
     if activity.is_verified != current_is_verified:
+        activity.save()
+
+    if activity.filter != task.filter:
+        activity.filter = task.filter
+        activity.save()
+
+    if activity.workflow_id != task.workflow.id:
+        activity.workflow_id = task.workflow.id
         activity.save()
\ No newline at end of file