diff --git a/src/app/template/controllers/TemplateController.php b/src/app/template/controllers/TemplateController.php
index 40bf25dbb4613327385f49ff779103c4882c6d61..1a46812e9a3fbc9b50ab68c783dbf20b94aff6a7 100755
--- a/src/app/template/controllers/TemplateController.php
+++ b/src/app/template/controllers/TemplateController.php
@@ -114,15 +114,7 @@ class TemplateController
             $checkEntities = TemplateModel::checkEntities(['data' => $data]);
             
             if(!empty($checkEntities)){
-                $listMessage = '';
-                foreach($checkEntities as $entities){
-                    if($listMessage!='') {
-                        $listMessage .= ", ";
-                    }
-                    $listMessage = $listMessage . $entities['value_field'];
-                }
-                $message = _TEMPLATE_ERROR_CHECK_ENTITIES . $data['template_attachment_type'] . ' : ' . $listMessage;
-                return $response->withStatus(400)->withJson(['errors' => $message]);
+                return $response->withJson(['checkEntities' => $checkEntities]);
             }
         }
 
@@ -202,6 +194,7 @@ class TemplateController
         $data = $request->getParams();
         $data['template_type'] = $template['template_type'];
         $data['template_target'] = $template['template_target'];
+        $data['template_id'] = $aArgs['id'];
 
         if (!TemplateController::checkData(['data' => $data])) {
             return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
@@ -211,6 +204,14 @@ class TemplateController
             return $response->withStatus(400)->withJson(['errors' => 'You must complete at least one of the two templates']);
         }
 
+        if ($data['template_target'] == 'acknowledgementReceipt' && !empty($data['entities'])) {
+            $checkEntities = TemplateModel::checkEntities(['data' => $data]);
+            
+            if(!empty($checkEntities)){
+                return $response->withJson(['checkEntities' => $checkEntities]);
+            }
+        }
+
         if (($data['template_type'] == 'OFFICE' || $data['template_type'] == 'OFFICE_HTML') && (!empty($data['jnlpUniqueId']) || !empty($data['uploadedFile']))) {
             if (!empty($data['jnlpUniqueId'])) {
                 if (!empty($template['template_style']) && !Validator::stringType()->notEmpty()->validate($data['template_style'])) {
diff --git a/src/app/template/models/TemplateModelAbstract.php b/src/app/template/models/TemplateModelAbstract.php
index ab1fc78abcb65bbc825435f4adb1ab03eb9ff0a8..0d8c55b8c92c14ee31525fb3dba2752bdf168ddc 100755
--- a/src/app/template/models/TemplateModelAbstract.php
+++ b/src/app/template/models/TemplateModelAbstract.php
@@ -221,14 +221,14 @@ abstract class TemplateModelAbstract
         $data = $aArgs['data'];
         
         $listEntities = DatabaseModel::select([
-        'select'    => ['ta.value_field'],
-        'table'     => ['templates t','templates_association ta'],
-        'left_join' => ['ta.template_id = t.template_id'],
-        'where'     => ['t.template_attachment_type = ?', 'value_field in (?)'],
-        'data'      => [$data['template_attachment_type'], $data['entities']],
-        'groupBy'   => ['ta.value_field']
-        ]);
-
+        'select'    => ['ta.value_field', 'e.entity_label'],
+        'table'     => ['templates t','templates_association ta', 'entities e'],
+        'left_join' => ['ta.template_id = t.template_id', 'e.entity_id = ta.value_field'],
+        'where'     => empty($data['template_id']) ? ['t.template_attachment_type = ?', 'value_field in (?)'] : ['t.template_attachment_type = ?', 'value_field in (?)', 't.template_id != (?)' ],
+        'data'      => empty($data['template_id']) ? [$data['template_attachment_type'], $data['entities']]   : [$data['template_attachment_type'], $data['entities'], $data['template_id']],
+        'groupBy'   => ['ta.value_field', 'e.entity_label']
+        ]);       
+        
         return $listEntities;
     }
 }
diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php
index dd11cbf9dc144d97d2de0818d753c76228109f58..22e9c20a6fb6ec26e1718d511940c253316e9a69 100755
--- a/src/core/lang/lang-en.php
+++ b/src/core/lang/lang-en.php
@@ -85,7 +85,6 @@ define('_STATUS_NOT_FOUND', 'Status not found');
 define('_TEMPLATE_ADDED', 'Template added');
 define('_TEMPLATE_UPDATED', 'Template updated');
 define('_TEMPLATE_DELETED', 'Template deleted');
-define( '_TEMPLATE_ERROR_CHECK_ENTITIES',"The following entities already have a model of");
 define('_TO_CC', 'On copy');
 define('_TO_SIGN', 'For signature');
 define('_UPDATE_STATUS', 'Status update');
diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php
index c0a75da8f6185d09c56855095677948ecc5a984c..0ef50a6d6dc6dae824315672e8c9ba0fc50a03f7 100755
--- a/src/core/lang/lang-fr.php
+++ b/src/core/lang/lang-fr.php
@@ -85,7 +85,6 @@ define('_STATUS_NOT_FOUND', 'Statut introuvable');
 define('_TEMPLATE_ADDED', 'Modèle de document ajouté');
 define('_TEMPLATE_UPDATED', 'Modèle de document modifié');
 define('_TEMPLATE_DELETED', 'Modèle de document supprimé');
-define( '_TEMPLATE_ERROR_CHECK_ENTITIES',"Les entités suivantes ont déjà un modèle d'");
 define('_TO_CC', 'En copie');
 define('_TO_SIGN', 'Pour signature');
 define('_UPDATE_STATUS', 'Modification du statut');
diff --git a/src/core/lang/lang-nl.php b/src/core/lang/lang-nl.php
index 1f74ca59bf907e6d665d772766bbbc6c89f8254c..036ce2bb36ce6e9d8e347ce9c320956f628e5bf4 100644
--- a/src/core/lang/lang-nl.php
+++ b/src/core/lang/lang-nl.php
@@ -102,7 +102,6 @@ define('_PASSWORD_RULES_UPDATED', 'Wachtwoordregels gewijzigd');
 define('_TEMPLATE_ADDED', 'Documentmodel toegevoegd');
 define('_TEMPLATE_UPDATED', 'Documentmodel gewijzigd');
 define('_TEMPLATE_DELETED', 'Documentmodel verwijderd');
-define('_TEMPLATE_ERROR_CHECK_ENTITIES',"The following entities already have a model of"); //_TO_TRANSLATE
 define('_USER_ALREADY_LINK_GROUP', 'De gebruiker is reeds aan deze groep gekoppeld');
 define('_USER_ALREADY_LINK_ENTITY', 'De gebruiker is reeds aan deze eenheid gekoppeld');
 define('_UNREACHABLE_DOCSERVER', 'Pad docserver onbereikbaar');
diff --git a/src/frontend/app/administration/administration.module.ts b/src/frontend/app/administration/administration.module.ts
index d46bdf855069b755456f5351c2d62201053632c9..034adc34cb780f47d0c1c08c88e3e0de2811aea1 100755
--- a/src/frontend/app/administration/administration.module.ts
+++ b/src/frontend/app/administration/administration.module.ts
@@ -41,7 +41,7 @@ import { VersionsUpdateAdministrationComponent }        from './versionUpdate/ve
 import { DocserversAdministrationComponent }            from './docserver/docservers-administration.component';
 import { DocserverAdministrationComponent }             from './docserver/docserver-administration.component';
 import { TemplatesAdministrationComponent }             from './template/templates-administration.component';
-import { TemplateAdministrationComponent }              from './template/template-administration.component';
+import { TemplateAdministrationComponent, TemplateAdministrationCheckEntitiesModalComponent }              from './template/template-administration.component';
 import { SecuritiesAdministrationComponent }            from './security/securities-administration.component';
 import { SendmailAdministrationComponent }            from './sendmail/sendmail-administration.component';
 
@@ -101,7 +101,8 @@ import { ListAdministrationComponent }            from './basket/list/list-admin
         SendmailAdministrationComponent,
         TechnicalAdministrationComponent,
         ListAdministrationComponent,
-        ListAdministrationComponent
+        ListAdministrationComponent,
+        TemplateAdministrationCheckEntitiesModalComponent
     ],
     entryComponents: [
         UsersAdministrationRedirectModalComponent,
@@ -113,7 +114,8 @@ import { ListAdministrationComponent }            from './basket/list/list-admin
         DoctypesAdministrationRedirectModalComponent,
         TechnicalAdministrationComponent,
         ListAdministrationComponent,
-        ListAdministrationComponent
+        ListAdministrationComponent,
+        TemplateAdministrationCheckEntitiesModalComponent
     ],
 })
 export class AdministrationModule {}
\ No newline at end of file
diff --git a/src/frontend/app/administration/template/template-administration-checkEntities-modal.component.html b/src/frontend/app/administration/template/template-administration-checkEntities-modal.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..f0749f778a1f88c90ee77aaaa1651bd66fcb4d99
--- /dev/null
+++ b/src/frontend/app/administration/template/template-administration-checkEntities-modal.component.html
@@ -0,0 +1,19 @@
+<mat-dialog-content style="overflow:inherit;">
+    <h2 mat-dialog-title>{{lang.templateAssociateEntities}}</h2>
+    <div class="modal-body">
+        <div class="alert alert-warning" role="alert">
+            <p><b>{{lang.templateCheckEntities}}{{lang[data.template_attachment_type]}}</b></p>
+        </div>
+        <mat-list>
+            <mat-list-item *ngFor="let entity of data.entitiesList">
+                <mat-icon mat-list-icon><i class="fa fa-share-alt" color="primary"></i></mat-icon>
+                <span mat-line> {{entity.entity_label}} </span>
+            </mat-list-item>
+        </mat-list>
+    </div>
+    <mat-dialog-actions>
+        <button mat-raised-button color="primary" type="submit"
+            (click)="dialogRef.close()">{{lang.close}}</button>
+    </mat-dialog-actions>
+
+</mat-dialog-content>
\ No newline at end of file
diff --git a/src/frontend/app/administration/template/template-administration-checkEntities-modal.scss b/src/frontend/app/administration/template/template-administration-checkEntities-modal.scss
new file mode 100644
index 0000000000000000000000000000000000000000..3fa43fa11bab69e65178749deb90cbae7221e7c4
--- /dev/null
+++ b/src/frontend/app/administration/template/template-administration-checkEntities-modal.scss
@@ -0,0 +1,13 @@
+.mat-dialog-content{
+    height: auto !important;
+    min-width: 30vw;
+    max-height: 65vh;
+}
+
+.modal-body{
+    min-height: auto;
+}
+
+mat-dialog-actions{
+    justify-content: center;
+}
\ No newline at end of file
diff --git a/src/frontend/app/administration/template/template-administration.component.html b/src/frontend/app/administration/template/template-administration.component.html
index 7305b755be6dc03c81b8d72ed0ebbda94dfa0a12..1368c39fc5eb5602af423085628354697d0431a4 100755
--- a/src/frontend/app/administration/template/template-administration.component.html
+++ b/src/frontend/app/administration/template/template-administration.component.html
@@ -70,17 +70,17 @@
                         </div>
 
                          <div class="form-group" *ngIf="template.template_target == 'acknowledgementReceipt'">
-                                <div class="col-sm-12">
-                                    <mat-form-field>
-                                            <mat-select [disabled]="!creationMode" id="template_attachment_type" name="template_attachment_type" title="{{lang.acknowledgementReceiptType}}" placeholder="{{lang.acknowledgementReceiptType}}"
-                                            [(ngModel)]="template.template_attachment_type" required>
-                                            <mat-option value="ar_simple">{{lang.AR_simple}}</mat-option>
-                                            <mat-option value="ar_sva">{{lang.AR_SVA}}</mat-option>
-                                            <mat-option value="ar_svr">{{lang.AR_SVR}}</mat-option>
-                                        </mat-select>
-                                    </mat-form-field>
-                                </div>
+                            <div class="col-sm-12">
+                                <mat-form-field>
+                                        <mat-select [disabled]="!creationMode" id="template_attachment_type" name="template_attachment_type" title="{{lang.acknowledgementReceiptType}}" placeholder="{{lang.acknowledgementReceiptType}}"
+                                        [(ngModel)]="template.template_attachment_type" required>
+                                        <mat-option value="ar_simple">{{lang.ar_simple}}</mat-option>
+                                        <mat-option value="ar_sva">{{lang.ar_sva}}</mat-option>
+                                        <mat-option value="ar_svr">{{lang.ar_svr}}</mat-option>
+                                    </mat-select>
+                                </mat-form-field>
                             </div>
+                        </div>
 
                         <div class="form-group" [hidden]="template.template_target=='attachments' || template.template_target=='notifications' || template.template_target=='doctypes' || template.template_target=='notes' || template.template_target=='acknowledgementReceipt'">
                             <div class="col-sm-12">
diff --git a/src/frontend/app/administration/template/template-administration.component.ts b/src/frontend/app/administration/template/template-administration.component.ts
index 4297d8c35fa93ee61fa007ccc87f6c61d6bba0c7..b8d30e29175c6282147835b689c756aa31aacdc9 100755
--- a/src/frontend/app/administration/template/template-administration.component.ts
+++ b/src/frontend/app/administration/template/template-administration.component.ts
@@ -1,10 +1,10 @@
-import { ChangeDetectorRef, Component, OnInit, NgZone, ViewChild } from '@angular/core';
+import { ChangeDetectorRef, Component, OnInit, NgZone, ViewChild, Inject } from '@angular/core';
 import { MediaMatcher } from '@angular/cdk/layout';
 import { HttpClient } from '@angular/common/http';
 import { Router, ActivatedRoute } from '@angular/router';
 import { LANG } from '../../translate.component';
 import { NotificationService } from '../../notification.service';
-import { MatSidenav } from '@angular/material';
+import { MatSidenav, MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
 import { HeaderService } from '../../../service/header.service';
 
 declare function $j(selector: any): any;
@@ -43,8 +43,12 @@ export class TemplateAdministrationComponent implements OnInit {
     lockFound               : boolean   = false;
     intervalLockFile        : any;
 
+    dialogRef               : MatDialogRef<any>;
+    data                    : any[]      = [];
+    config                  : any        = {};
 
-    constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private zone: NgZone, private route: ActivatedRoute, private router: Router, private notify: NotificationService, private headerService: HeaderService) {
+
+    constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private zone: NgZone, private route: ActivatedRoute, private router: Router, private notify: NotificationService, private headerService: HeaderService, public dialog: MatDialog) {
         $j("link[href='merged_css.php']").remove();
         this.mobileQuery = media.matchMedia('(max-width: 768px)');
         this._mobileQueryListener = () => changeDetectorRef.detectChanges();
@@ -293,9 +297,19 @@ export class TemplateAdministrationComponent implements OnInit {
                 this.template.template_style = '';
             }
             this.http.post(this.coreUrl + 'rest/templates', this.template)
-                .subscribe(() => {
-                    this.router.navigate(['/administration/templates']);
-                    this.notify.success(this.lang.templateAdded);
+                .subscribe((data:any) => {
+                    if(data.checkEntities) {
+                        this.config = {
+                            data: {
+                                entitiesList: data.checkEntities,
+                                template_attachment_type: this.template.template_attachment_type
+                            }
+                        };
+                        this.dialogRef = this.dialog.open(TemplateAdministrationCheckEntitiesModalComponent, this.config);
+                    } else {
+                        this.router.navigate(['/administration/templates']);
+                        this.notify.success(this.lang.templateAdded);
+                    }
                 }, (err) => {
                     this.notify.error(err.error.errors);
                 });
@@ -304,9 +318,19 @@ export class TemplateAdministrationComponent implements OnInit {
                 this.template.template_style = '';
             }
             this.http.put(this.coreUrl + 'rest/templates/' + this.template.template_id, this.template)
-                .subscribe(() => {
-                    this.router.navigate(['/administration/templates']);
-                    this.notify.success(this.lang.templateUpdated);
+                .subscribe((data:any) => {
+                    if(data.checkEntities) {
+                        this.config = {
+                            data: {
+                                entitiesList: data.checkEntities,
+                                template_attachment_type: this.template.template_attachment_type
+                            }
+                        };
+                        this.dialogRef = this.dialog.open(TemplateAdministrationCheckEntitiesModalComponent, this.config);
+                    } else {
+                        this.router.navigate(['/administration/templates']);
+                        this.notify.success(this.lang.templateUpdated);
+                    }
                 }, (err) => {
                     this.notify.error(err.error.errors);
                 });
@@ -349,4 +373,16 @@ export class TemplateAdministrationComponent implements OnInit {
         this.fileToImport();
         this.template.uploadedFile = null;
     }
+@Component({
+    templateUrl: "template-administration-checkEntities-modal.component.html",
+    styleUrls: ['template-administration-checkEntities-modal.scss']
+})
+export class TemplateAdministrationCheckEntitiesModalComponent {
+    lang: any  = LANG;
+    
+    constructor(public http: HttpClient, @Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef<TemplateAdministrationCheckEntitiesModalComponent>) {
+    }
+
+    ngOnInit(): void {}
+    
 }
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 9c6a80b3714dae43419955e19d0337c45ed82401..d67ddfe2e17ba345299ba921914dcf790dadd43e 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -36,9 +36,9 @@ export const LANG_EN = {
     "april"                             : "April",
     "aprilShort"                        : "Apr.",
     "acknowledgementReceipt"            : "Acknowledgement of receipt",
-    'AR_simple'                         : 'AR simple',
-    'AR_SVA'                            : 'AR SVA',
-    'AR_SVR'                            : 'AR SVR',
+    'ar_simple'                         : 'AR simple',
+    'ar_sva'                            : 'AR SVA',
+    'ar_svr'                            : 'AR SVR',
     "archivalAgency"                    : "Archival agency",
     "archivalAgreement"                 : "Archival agreement",
     "arrivalDate"                       : "Arrival date",
@@ -863,4 +863,6 @@ export const LANG_EN = {
     "electronicTemplate"                   : "Electronic template",
     "updateClosingDate"                   : "This will update mail <b class=\"highlight\">closing date</b>.",
     "updateDepartureDate"                   : "This will update mail <b class=\"highlight\">departure date</b>.",
+    "templateCheckEntities"                 : "The following entities already have a registered template for the type : ",
+    "templateAssociateEntities"             : "List of entities already associated with a template",
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 19c5b44ceebfcec18490c561855f9d01acc52ebd..2e40cb15cc5abd76ddb96904b5aa052b8d0ec7fe 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -43,9 +43,9 @@ export const LANG_FR = {
     "april"                             : "Avril",
     "aprilShort"                        : "Avr.",
     "acknowledgementReceipt"            : "Accusé de réception",
-    'AR_simple'                         : 'AR simple',
-    'AR_SVA'                            : 'AR SVA',
-    'AR_SVR'                            : 'AR SVR',
+    'ar_simple'                         : 'AR simple',
+    'ar_sva'                            : 'AR SVA',
+    'ar_svr'                            : 'AR SVR',
     "archival"                          : "Archivage",
     "archivalAgency"                    : "Convention d'archivage",
     "archivalAgreement"                 : "Service d'archive",
@@ -888,4 +888,6 @@ export const LANG_FR = {
     "electronicTemplate"                   : "Modèle électronique",
     "updateClosingDate"                   : "Cela actualisera la <b class=\"highlight\">date de clôture</b> des courriers.",
     "updateDepartureDate"                   : "Cela actualisera la <b class=\"highlight\">date de départ</b> des courriers.",
+    "templateCheckEntities"                 : "Les entités suivantes ont déjà un modèle enregistré pour le type : ",
+    "templateAssociateEntities"             : "Liste des entités déjà associées à un modèle",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index d34cd175d2f3e46634666c8a7dd64d2a560ea9f5..5e6d46c89e159479114df7c24308d8aa6d04098c 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -877,9 +877,9 @@ export const LANG_NL = {
     "addNote"                      : "Add note", //_TO_TRANSLATE
     "makeActionOn"                      : "Do you want to do this action on", //_TO_TRANSLATE
     "acknowledgementReceipt"            : "Acknowledgement of receipt", //_TO_TRANSLATE
-    'AR_simple'                         : 'AR simple', //_TO_TRANSLATE
-    'AR_SVA'                            : 'AR SVA', //_TO_TRANSLATE
-    'AR_SVR'                            : 'AR SVR', //_TO_TRANSLATE
+    'ar_simple'                         : 'AR simple', //_TO_TRANSLATE
+    'ar_sva'                            : 'AR SVA', //_TO_TRANSLATE
+    'ar_svr'                            : 'AR SVR', //_TO_TRANSLATE
     "tooMuchDatas"                      : "Too much datas to export", //_TO_TRANSLATE
     "warnTooMuchSelect"                      : "only 500 elements can be processed with an action", //_TO_TRANSLATE
     "elements"                      : "element(s)", //_TO_TRANSLATE
@@ -891,4 +891,6 @@ export const LANG_NL = {
     "electronicTemplate"                   : "Electronic template", //_TO_TRANSLATE
     "updateClosingDate"                   : "This will update mail <b class=\"highlight\">closing date</b>.", //_TO_TRANSLATE
     "updateDepartureDate"                   : "This will update mail <b class=\"highlight\">departure date</b>.", //_TO_TRANSLATE
+    "templateCheckEntities"                 : "The following entities already have a registered template for the type : ", //_TO_TRANSLATE
+    "templateAssociateEntities"             : "List of entities already associated with a template", //_TO_TRANSLATE
 };