diff --git a/src/frontend/app/diffusions/diffusions-list.component.ts b/src/frontend/app/diffusions/diffusions-list.component.ts
index d70ff7c06c6adba00790901e4cdb75f9841213fc..aaae624ae4e62606b54adeb550283a9650d845ee 100644
--- a/src/frontend/app/diffusions/diffusions-list.component.ts
+++ b/src/frontend/app/diffusions/diffusions-list.component.ts
@@ -368,6 +368,10 @@ export class DiffusionsListComponent implements OnInit {
                 item_mode: "copy"
             };
             this.diffList['copy'].items.unshift(newElemListModel);
+
+            if (this.diffFormControl !== undefined) {
+                this.setFormValues();
+            }
         }
     }
 
@@ -391,6 +395,9 @@ export class DiffusionsListComponent implements OnInit {
         } else {
             this.changeUserRole(user, oldRole, newRole);
         }
+        if (this.diffFormControl !== undefined) {
+            this.setFormValues();
+        }
         //}
     }
 
@@ -457,6 +464,7 @@ export class DiffusionsListComponent implements OnInit {
         if (indexFound > -1) {
             this.diffList[oldRole.id].items.splice(indexFound, 1);
         }
+        user.item_mode = newRole.id;
         this.diffList[newRole.id].items.push(user);
     }