diff --git a/api/dao/containerstorage.py b/api/dao/containerstorage.py
index 6cd2f119ea264d019a5a9788c517d0cc6eff6b12..e171bfac7068701404641d038b21fad5d77c9482 100644
--- a/api/dao/containerstorage.py
+++ b/api/dao/containerstorage.py
@@ -304,8 +304,8 @@ class SessionStorage(ContainerStorage):
             else:
                 payload['subject']['_id'] = bson.ObjectId()
 
-
         # Determine if we need to calc session compliance
+        # First check if project is being changed
         if payload and payload.get('project'):
             project = ProjectStorage().get_container(payload['project'])
             if not project:
@@ -313,15 +313,11 @@ class SessionStorage(ContainerStorage):
         else:
             project = ProjectStorage().get_container(session['project'])
 
+        # Check if new (if project is changed) or current project has template
         payload_has_template = project.get('template', False)
         session_has_template = session.get('project_has_template') is not None
         unset_payload_has_template = (unset_payload and 'project_has_template'in unset_payload)
 
-        if payload_has_template or (session_has_template and not unset_payload_has_template):
-            session.update(payload)
-
-        pre_result = super(SessionStorage, self).update_el(_id, payload, unset_payload=unset_payload, recursive=recursive, r_payload=r_payload, replace_metadata=replace_metadata)
-
         if payload_has_template or (session_has_template and not unset_payload_has_template):
             session.update(payload)
             if project and project.get('template'):
@@ -332,11 +328,7 @@ class SessionStorage(ContainerStorage):
                     unset_payload = {}
                 unset_payload['satisfies_template'] = ""
                 unset_payload['project_has_template'] = ""
-        post_result = super(SessionStorage, self).update_el(_id, payload, unset_payload=unset_payload, recursive=recursive, r_payload=r_payload, replace_metadata=replace_metadata)
-        if post_result and post_result.modified_count == 1:
-            return post_result
-        else:
-            return pre_result
+        return super(SessionStorage, self).update_el(_id, payload, unset_payload=unset_payload, recursive=recursive, r_payload=r_payload, replace_metadata=replace_metadata)
 
     def recalc_session_compliance(self, session_id, session=None, template=None, hard=False):
         """