diff --git a/migration/20.10/2010.sql b/migration/20.10/2010.sql
index 6714a21f4039c1fd53a590a26b13527adfbddcc5..10c359f7b2cae21e03b13943df914c162de525d9 100755
--- a/migration/20.10/2010.sql
+++ b/migration/20.10/2010.sql
@@ -262,6 +262,9 @@ INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailImportedS
 DELETE FROM parameters WHERE id = 'traffic_record_summary_sheet';
 INSERT INTO parameters (id, description, param_value_string) VALUES ('traffic_record_summary_sheet', 'Module circulation pour la fiche de liaison', '');
 
+DELETE FROM parameters WHERE id = 'keepDiffusionRoleInOutgoingIndexation';
+INSERT INTO parameters (id, param_value_int) VALUES ('keepDiffusionRoleInOutgoingIndexation', 1);
+
 ALTER TABLE configurations RENAME COLUMN service TO privilege;
 DELETE FROM configurations WHERE privilege = 'admin_search';
 INSERT INTO configurations (privilege, value) VALUES ('admin_search', '{"listEvent": {"defaultTab": "dashboard"},"listDisplay":{"templateColumns":6,"subInfos":[{"value":"getPriority","cssClasses":["align_leftData"],"icon":"fa-traffic-light"},{"value":"getCreationAndProcessLimitDates","cssClasses":["align_leftData"],"icon":"fa-calendar"},{"value":"getAssignee","cssClasses":["align_leftData"],"icon":"fa-sitemap"},{"value":"getDoctype","cssClasses":["align_leftData"],"icon":"fa-suitcase"},{"value":"getRecipients","cssClasses":["align_leftData"],"icon":"fa-user"},{"value":"getSenders","cssClasses":["align_leftData"],"icon":"fa-book"}]}}');
diff --git a/sql/data_en.sql b/sql/data_en.sql
index f0fa95db5aac8a52d29d4dee3207f199bb3a3781..13241d378968bc642cdcc3e1b5c89052ca2637df 100755
--- a/sql/data_en.sql
+++ b/sql/data_en.sql
@@ -841,6 +841,11 @@ INSERT INTO parameters (id, description, param_value_string) VALUES ('thumbnails
 INSERT INTO parameters (id, description, param_value_int) VALUES ('keepDestForRedirection', 'If enabled (1), put recipient in copy for diffusion list when redirecting', 0);
 INSERT INTO parameters (id, description, param_value_int) VALUES ('QrCodePrefix', 'If enabled (1), add "Maarch_" before the content in QrCode. (Can be use with MaarchCapture >= 1.4)', 0);
 INSERT INTO parameters (id, description, param_value_int) VALUES ('workingDays', 'If enabled (1), processing time is calculated in working days (Monday to Friday). Otherwise, in calendar days', 1);
+INSERT INTO parameters (id, param_value_int) VALUES ('last_deposit_id', 0);
+INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailNotDistributedStatus', 'PND');
+INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailDistributedStatus', 'DSTRIBUTED');
+INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailImportedStatus', 'NEW');
+INSERT INTO parameters (id, param_value_int) VALUES ('keepDiffusionRoleInOutgoingIndexation', 1);
 
 ------------
 --DIFFLIST_TYPES
diff --git a/sql/data_fr.sql b/sql/data_fr.sql
index ba3cd8c3ec871127d7cfabc2b235d3145de4d154..5748d62b3ec830a0ae20683aac2c2f210c2cc881 100755
--- a/sql/data_fr.sql
+++ b/sql/data_fr.sql
@@ -1020,6 +1020,7 @@ INSERT INTO parameters (id, param_value_int) VALUES ('last_deposit_id', 0);
 INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailNotDistributedStatus', 'PND');
 INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailDistributedStatus', 'DSTRIBUTED');
 INSERT INTO parameters (id, param_value_string) VALUES ('registeredMailImportedStatus', 'NEW');
+INSERT INTO parameters (id, param_value_int) VALUES ('keepDiffusionRoleInOutgoingIndexation', 1);
 
 ------------
 --DIFFLIST_TYPES
diff --git a/src/frontend/app/diffusions/diffusions-list.component.ts b/src/frontend/app/diffusions/diffusions-list.component.ts
index dadd975e9b3429d6eb7cda6497db2ed827c8fbf4..9470acafd61a2446e5d078f5a26290c961417da4 100644
--- a/src/frontend/app/diffusions/diffusions-list.component.ts
+++ b/src/frontend/app/diffusions/diffusions-list.component.ts
@@ -18,7 +18,7 @@ import { HeaderService } from '@service/header.service';
 })
 export class DiffusionsListComponent implements OnInit {
 
-    
+
     roles: any = [];
     loading: boolean = true;
     availableRoles: any[] = [];
@@ -31,6 +31,7 @@ export class DiffusionsListComponent implements OnInit {
     listinstanceClone: any = [];
 
     hasNoDest: boolean = false;
+    keepDiffusionRoleInOutgoingIndexation: boolean = false;
 
     /**
      * Ressource identifier to load listinstance (Incompatible with templateId)
@@ -52,6 +53,11 @@ export class DiffusionsListComponent implements OnInit {
      */
     @Input() selfDest: boolean = false;
 
+    /**
+     * To specify the context to load listModel
+     */
+    @Input() category: string = '';
+
     /**
      * For manage current loaded list
      */
@@ -97,7 +103,7 @@ export class DiffusionsListComponent implements OnInit {
     ) { }
 
     async ngOnInit(): Promise<void> {
-
+        await this.initParams();
         await this.initRoles();
         if (this.resId !== null && this.resId != 0 && this.target !== 'redirect') {
             this.loadListinstance(this.resId);
@@ -173,6 +179,14 @@ export class DiffusionsListComponent implements OnInit {
             }
         }
 
+        if (this.category === 'outgoing' && this.keepDiffusionRoleInOutgoingIndexation) {
+            Object.keys(this.diffList).forEach(key => {
+                if (key !== 'dest') {
+                    this.diffList[key].items = [];
+                }
+            });
+        }
+
         if (this.diffFormControl !== undefined) {
             this.setFormValues();
         }
@@ -220,7 +234,7 @@ export class DiffusionsListComponent implements OnInit {
                 this.http.get(`../rest/resources/${resId}/listInstance`).pipe(
                     map((data: any) => {
                         data.listInstance = data.listInstance.map((item: any) => {
-    
+
                             const obj: any = {
                                 listinstance_id: item.listinstance_id,
                                 item_mode: item.item_mode,
@@ -348,6 +362,18 @@ export class DiffusionsListComponent implements OnInit {
         });
     }
 
+    initParams() {
+        return new Promise((resolve, reject) => {
+            this.http.get('../rest/parameters/keepDiffusionRoleInOutgoingIndexation')
+                .subscribe((data: any) => {
+                    this.keepDiffusionRoleInOutgoingIndexation = data.parameter.param_value_int;
+                    resolve(true);
+                }, (err) => {
+                    this.notify.handleSoftErrors(err);
+                });
+        });
+    }
+
     deleteItem(roleId: string, index: number) {
         this.diffList[roleId].items.splice(index, 1);
         if (this.diffFormControl !== undefined) {
@@ -357,7 +383,7 @@ export class DiffusionsListComponent implements OnInit {
 
     getCurrentListinstance() {
         let listInstanceFormatted: any = [];
-        
+
         if (this.diffList !== null) {
             Object.keys(this.diffList).forEach(role => {
                 if (this.diffList[role].items.length > 0) {
@@ -374,7 +400,7 @@ export class DiffusionsListComponent implements OnInit {
                 }
             });
         }
-        
+
 
         return listInstanceFormatted;
     }
@@ -456,11 +482,11 @@ export class DiffusionsListComponent implements OnInit {
 
     isItemInThisRole(element: any, roleId: string) {
         const result = this.diffList[roleId].items.map((item: any, index: number) => {
-                return {
-                    ...item,
-                    index: index
-                }
-            }).filter((item: any) => item.itemSerialId === element.itemSerialId && item.item_type === element.item_type);
+            return {
+                ...item,
+                index: index
+            };
+        }).filter((item: any) => item.itemSerialId === element.itemSerialId && item.item_type === element.item_type);
 
         return result.length > 0;
     }
@@ -555,13 +581,13 @@ export class DiffusionsListComponent implements OnInit {
                         return {
                             ...item,
                             index: index
-                        }
+                        };
                     }).filter((item: any) => item.itemSerialId === user.itemSerialId && item.item_type === user.item_type);
 
                     if (result.length > 0) {
                         this.diffList[oldRole.id].items.splice(result[0].index, 1);
                     }
-                    
+
                     user.item_mode = 'dest';
                     this.diffList['dest'].items[0] = user;
 
diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.html b/src/frontend/app/indexation/indexing-form/indexing-form.component.html
index 1b4b60e933fd67a590d9fe412d6aebd0281f08fa..28eaa7412ce7573441e824311e0ceb7bf222e641 100644
--- a/src/frontend/app/indexation/indexing-form/indexing-form.component.html
+++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.html
@@ -246,7 +246,7 @@
                                     <i class="fas fa-check fieldFull" *ngIf="!adminMode && arrFormControl['diffusionList'].valid && !isEmptyField(field)"></i>
                                 </div>
                             </div>
-                            <app-diffusions-list #appDiffusionsList [resId]="resId" [entityId]="arrFormControl[field.identifier].value" [diffFormControl]="arrFormControl['diffusionList']" [allowedEntities]="field.allowedEntities" [target]="'indexation'" [selfDest]="selfDest" (triggerEvent)="changeDestination($event,field.allowedEntities)">
+                            <app-diffusions-list #appDiffusionsList [resId]="resId" [entityId]="arrFormControl[field.identifier].value" [diffFormControl]="arrFormControl['diffusionList']" [allowedEntities]="field.allowedEntities" [category]="currentCategory" [target]="'indexation'" [selfDest]="selfDest" (triggerEvent)="changeDestination($event,field.allowedEntities)">
                             </app-diffusions-list>
                             <mat-divider></mat-divider>
                         </div>