diff --git a/src/app/entity/controllers/EntityController.php b/src/app/entity/controllers/EntityController.php
index 2dcaa7e989a79cd44f9087affbb4ac8aad5efc95..6e5c6ec5784c7eae4f41aec1fa1dcaa195438ada 100755
--- a/src/app/entity/controllers/EntityController.php
+++ b/src/app/entity/controllers/EntityController.php
@@ -180,6 +180,7 @@ class EntityController
 
         $entity['users'] = EntityModel::getUsersById(['id' => $entity['entity_id'], 'select' => ['users.id','users.user_id', 'users.firstname', 'users.lastname', 'users.status']]);
         $children = EntityModel::get(['select' => [1], 'where' => ['parent_entity_id = ?'], 'data' => [$args['id']]]);
+        $entity['contact'] = $this->getContactLinkCount($entity['id']);
         $entity['hasChildren'] = count($children) > 0;
         $documents = ResModel::get(['select' => [1], 'where' => ['destination = ?'], 'data' => [$args['id']]]);
         $entity['documents'] = count($documents);
@@ -195,6 +196,12 @@ class EntityController
         return $response->withJson(['entity' => $entity]);
     }
 
+    public function getContactLinkCount(int $id)
+    {
+        $linkCount = count(ResourceContactModel::get(['select' => ['distinct res_id'], 'where' => ['item_id = ?', 'type = ?'], 'data' => [$id, 'entity']]));
+        return $linkCount;
+    }
+
     public function create(Request $request, Response $response)
     {
         if (!PrivilegeController::hasPrivilege(['privilegeId' => 'manage_entities', 'userId' => $GLOBALS['id']])) {
@@ -532,9 +539,20 @@ class EntityController
             'data'      => ['"'.$dyingEntity['id'].'"']
         ]);
         //ResourceContact
-        ResourceContactModel::update(['set' => ['item_id' => $successorEntity['id']], 'where' => ['item_id = ?', 'type = ?'], 'data' => [$dyingEntity['id'], 'entity']]);
+        $dyingOcc = ResourceContactModel::get(['select' => ['id', 'res_id', 'item_id', 'mode'], 'where' => ['type = ?', 'item_id = ?'], 'data' => ['entity', $dyingEntity['id']]]);
+        $succOcc = ResourceContactModel::get(['select' => ['id', 'res_id', 'item_id', 'mode'], 'where' => ['type = ?', 'item_id = ?', 'res_id in (?)'], 'data' => ['entity', $successorEntity['id'], array_uniq(array_column($dyingOcc, 'res_id'))]]);
+        $dyingIds = array_column($dyingOcc, 'id');
+        $idsToDelete = [];
+        foreach ($dyingOcc as $d) {
+            foreach ($succOcc as $s) {
+                if ($d['mode'] == $s['mode'] && $d['res_id'] == $s['res_id']) {
+                    $idsToDelete[] = $d['id'];
+                }
+            }
+        }
+        ResourceContactModel::delete(['where' => ['id in (?)'], 'data' => [$idsToDelete]]);
+        ResourceContactModel::update(['set' => ['item_id' => $successorEntity['id']], 'where' => ['id in (?)'], 'data' => [$dyingIds]]);
 
-        EntityModel::delete(['where' => ['entity_id = ?'], 'data' => [$aArgs['id']]]);
         HistoryController::add([
             'tableName' => 'entities',
             'recordId'  => $aArgs['id'],
diff --git a/src/frontend/app/administration/entity/entities-administration-redirect-modal.component.html b/src/frontend/app/administration/entity/entities-administration-redirect-modal.component.html
index 74b00ae55061530ff86da4a4d58eadb70d2df312..e0b6250c756a34deae67d5a8e816f176c32bb4aa 100755
--- a/src/frontend/app/administration/entity/entities-administration-redirect-modal.component.html
+++ b/src/frontend/app/administration/entity/entities-administration-redirect-modal.component.html
@@ -15,6 +15,12 @@
                         <b>{{data.entity.entity_label}}</b> {{'lang.isCopyTo' | translate}}
                         <b>{{data.entity.instances}}</b> {{'lang.documents' | translate}}</p>
                 </mat-list-item>
+                <mat-list-item *ngIf="data.entity.contact > 0">
+                    <mat-icon color="primary" mat-list-icon class="fa fa-address-book fa-2x"></mat-icon>
+                    <p mat-line>
+                        <b>{{data.entity.entity_label}}</b> {{'lang.isLinkedTo' | translate | lowercase}}
+                        <b>{{data.entity.contact}}</b> {{'lang.contactsEntity' | translate | lowercase}}</p>
+                </mat-list-item>
                 <mat-list-item *ngIf="data.entity.users.length > 0">
                     <mat-icon color="primary" mat-list-icon class="fa fa-user fa-2x"></mat-icon>
                     <p mat-line>
@@ -40,4 +46,4 @@
             (click)="dialogRef.close(data.entity)"
             [disabled]="data.entity.redirectEntity === undefined || data.entity.redirectEntity == data.entity.entity_id">{{'lang.delete' | translate}}</button>
     </mat-dialog-actions>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json
index f3d8af58c73dfb025c6a7d76faa869fb5f1b2623..d528f114861b4cd696dcfc71743da47cd4c6ff7b 100644
--- a/src/lang/lang-fr.json
+++ b/src/lang/lang-fr.json
@@ -376,6 +376,7 @@
     "contacts": "Contacts",
     "contactsAdmin": "Administration des contacts",
     "contactsAlt": "Contact(s)",
+    "contactsEntity": "courrier(s) en tant que contact",
     "contactsFillingAdministration": "Complétude des informations contacts",
     "contactsFillingCriteria": "Critères de complétude",
     "contactsFillingRate": "Taux de complétude",