diff --git a/api/dao/hierarchy.py b/api/dao/hierarchy.py
index d845ee4e0f14a831084a181d3668cd5e2ec2a1b7..93b6471e4dce47a0aaa446e8197b95e34d164b07 100644
--- a/api/dao/hierarchy.py
+++ b/api/dao/hierarchy.py
@@ -142,7 +142,8 @@ def propagate_changes(cont_name, _id, query, update, oper=None):
     # Apply change to projects
     if cont_name == 'groups' and oper:
         if oper == 'POST':
-            config.db.projects.update_many({'group': _id}, {'$addToSet': {'permissions': update}})
+            config.db.projects.update_many({'group': _id, 'permissions._id' : update['_id']}, {'$set': {'permissions.$.access': update['access']}})
+            config.db.projects.update_many({'group': _id, 'permissions._id' : {'$ne': update['_id']}}, {'$addToSet': {'permissions': update}})
         elif oper == 'PUT':
             config.db.projects.update_many({'group': _id, 'permissions._id' : update['_id']}, {'$set': {'permissions.$.access': update['access']}})
         elif oper == 'DELETE':