diff --git a/README.md b/README.md
index bb03233..442ff0e 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# Angular architecture patterns
+# OpenKonsquenz Core Modules - Contact Base Data Frontend
 
-This application represents a demo project for **Angular architecture patterns** blog series at [http://netmedia.io](http://netmedia.io/blog/angular-architecture-patterns-high-level-project-architecture_5589). Frontend app is generated with [Angular CLI](https://github.com/angular/angular-cli). It uses it's own local dev server on `http://localhost:4200/`.
+This application represents a core module for **OpenKonsquenz**.
 
 ### Run Development
 
diff --git a/angular.json b/angular.json
index 51b699f..9f999ed 100644
--- a/angular.json
+++ b/angular.json
@@ -22,7 +22,8 @@
             "assets": [
               "src/assets",
               "src/favicon.ico",
-              "src/service-worker.js",
+              "src/service-worker.js",			  
+			  "src/WEB-INF",
               {
                 "glob": "**/*",
                 "input": "config",
@@ -112,6 +113,7 @@
               "src/assets",
               "src/favicon.ico",
               "src/service-worker.js",
+			  "src/WEB-INF",
               {
                 "glob": "**/*",
                 "input": "config",
diff --git a/i18n/admin.de.json b/i18n/admin.de.json
index 2f2278e..dc2864a 100644
--- a/i18n/admin.de.json
+++ b/i18n/admin.de.json
@@ -1,7 +1,7 @@
 {
   "Salutations": {
     "Link": "Anreden verwalten",
-    "Title": "Übersicht Anrede",
+    "Title": "Übersicht Anreden",
     "DetailsTitle": "Anrede Details",
     "Type": "Typ",
     "Description": "Beschreibung",
@@ -10,7 +10,7 @@
   "CommunicationTypes": {
     "Link": "Kommunikationstypen verwalten",
     "Title": "Übersicht Kommunikationstypen",
-    "DetailsTitle": "Kommunikationstypen Details",
+    "DetailsTitle": "Kommunikationstyp Details",
     "Type": "Typ",
     "Description": "Beschreibung",
     "Editable": "Editierbar",
@@ -20,7 +20,7 @@
   "PersonTypes": {
     "Link": "Personentypen verwalten",
     "Title": "Übersicht Personentypen",
-    "DetailsTitle": "Personentypen Details",
+    "DetailsTitle": "Personentyp Details",
     "Type": "Typ",
     "Description": "Beschreibung",
     "New": "Neuen Personentyp anlegen"
@@ -28,7 +28,7 @@
   "AddressTypes": {
     "Link": "Adresstypen verwalten",
     "Title": "Übersicht Adresstypen",
-    "DetailsTitle": "Adresstypen Details",
+    "DetailsTitle": "Adresstyp Details",
     "Type": "Typ",
     "Description": "Beschreibung",
     "New": "Neuen Adresstyp anlegen"
diff --git a/i18n/general.de.json b/i18n/general.de.json
index aa93212..e9992ab 100644
--- a/i18n/general.de.json
+++ b/i18n/general.de.json
@@ -4,6 +4,7 @@
   "ServerError404": "Nicht gefunden. Bitte kontaktieren Sie den Administrator.",
   "ServerError409": "Die Aktion kann nicht durchgeführt werden, weil eine Abhängigkeit zu einem anderen Datensatz existiert.",
   "ServerError500": "Ein Fehler ist aufgetreten. Bitte kontaktieren Sie den Administrator.",
+  "ServerError504": "Beim Warten auf ein Gateway ist ein Timeout aufgetreten. Bitte prüfen Sie Ihre Netzwerkverbindung oder kontaktieren Sie den Administrator.",
   "SuccessNotificationTitle": "Erfolg",
   "ErrorNotificationTitle": "Fehler",
   "InfoNotificationTitle": "Info",
diff --git a/package.json b/package.json
index f2edf8c..9644923 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
     "sy-post-build": "node hooks/post-build.js",
     "sy-build": "npm run sy-pre-build && ng build --base-href /contactdatabase/ --prod --aot && npm run sy-post-build",
     "sy-build-noprod": "npm run sy-pre-build && ng build --base-href /contactdatabase/ && npm run sy-post-build",
+	"sy-build-prod": "npm run sy-pre-build && ng build --prod --aot --base-href /contactdatabase/ && npm run sy-post-build",
     "start-in-docker": "npm run sy-pre-start && ng serve --optimization=false --vendor-chunk --common-chunk --host=0.0.0.0 --disableHostCheck=true --proxy-config proxy-docker.conf.json",
     "start-in-docker-unsecure": "npm run sy-pre-start && ng serve --optimization=false --vendor-chunk --common-chunk --host=0.0.0.0 --disableHostCheck=true --proxy-config proxy-docker-unsecure.conf.json"
   },
diff --git a/src/WEB-INF/web.xml b/src/WEB-INF/web.xml
new file mode 100644
index 0000000..94ac5db
--- /dev/null
+++ b/src/WEB-INF/web.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
+                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+  version="3.1">
+
+	<error-page>
+         <error-code>404</error-code>
+         <location>/index.html</location>
+    </error-page>
+
+</web-app>
diff --git a/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts b/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts
index 940f047..5b4a5f4 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts
@@ -46,6 +46,14 @@
     field: 'note',
     colId: 'note',
     headerName: 'Contacts.Note',
+    maxWidth: 130,
+    tooltipValueGetter: params => {
+      if (!!params.value && params.value.length >= 20) {
+        return params.value;
+      } else {
+        return '';
+      }
+    },
     filter: 'agTextColumnFilter',
     filterParams: {
       debounceMs: 1000,
@@ -53,11 +61,12 @@
   },
   {
     valueGetter: function(params) {
-      if (params.data.community || params.data.street || params.data.housenumber) {
-        return `${params.data.community}, ${params.data.street} ${params.data.housenumber}`;
-      } else {
-        return '';
-      }
+      let result = '';
+      if (params.data.community) result += `${params.data.community}`;
+      if (params.data.street) result += ',' + ` ${params.data.street}`;
+      if (params.data.housenumber) result += ` ${params.data.housenumber}`;
+
+      return result;
     },
     colId: 'mainaddress',
     headerName: 'Contacts.MainAddress',
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.html b/src/app/pages/contacts/contacts-list/contacts-list.component.html
index da6b23c..37e26c1 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.html
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.html
@@ -150,7 +150,7 @@
       [queryParameter]="modifiedContacts"
       autoResizeColumns
       class="ag-theme-balham"
-      style="min-width: 984px; height: calc(100vh - 279px);"
+      style="min-width: 1130px; height: calc(100vh - 276px);"
       [gridOptions]="gridOptions"
       [columnDefs]="columnDefinition"
       [rowSelection]="'single'"
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.scss b/src/app/pages/contacts/contacts-list/contacts-list.component.scss
index 5177a30..f71da6d 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.scss
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.scss
@@ -22,7 +22,7 @@
   display: flex;
   justify-content: space-between;
   align-content: center;
-  min-width: 982px;
+  min-width: 1130px;
   background-color: #f5f7f7;
   border: 1px solid rgb(189, 195, 199);
   padding: 7px 7px 5px 7px;
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts b/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
index 5533293..3ed2d3e 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
@@ -236,4 +236,20 @@
     expect(component.modifiedContacts.moduleName).toBe(moduleName);
     expect(component.modifiedContacts.withoutAssignedModule).toBeFalsy();
   });
+
+  it('checks if function _resetDSGVOFilter works', () => {
+    (component as any)._deletionLockExceeded = true;
+    (component as any)._resetDSGVOFilter();
+    expect((component as any)._deletionLockExceeded).toBeFalsy();
+  });
+
+  it('checks if function showAdvancedDSGVOFilter() works', () => {
+    const spy = spyOn(component as any, '_resetDSGVOFilter');
+    component.isDSGVOFilterAdvancedVisible = true;
+    component.modifiedContacts.expiringDataInPast = true;
+    component.showAdvancedDSGVOFilter();
+
+    expect(component.isDSGVOFilterAdvancedVisible).toBeFalsy();
+    expect(spy).toHaveBeenCalled();
+  });
 });
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.ts b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
index d0cadd5..7a631da 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
@@ -205,6 +205,29 @@
     sessionStorage.setItem(Globals.SESSSION_STORAGE_KEYS.contactListSearchFilterKey, JSON.stringify(this.modifiedContacts));
   }
 
+  public showAdvancedDSGVOFilter() {
+    this.isDSGVOFilterAdvancedVisible = !this.isDSGVOFilterAdvancedVisible;
+    if (
+      !this.isDSGVOFilterAdvancedVisible &&
+      (this.modifiedContacts.moduleName != null ||
+        this.modifiedContacts.withoutAssignedModule ||
+        this.modifiedContacts.deletionLockExceeded ||
+        this.modifiedContacts.expiringDataInPast)
+    ) {
+      this._resetDSGVOFilter();
+    }
+  }
+
+  private _resetDSGVOFilter() {
+    this._deletionLockExceeded = false;
+    this._expiringDataInPast = false;
+    this.modifiedContacts.moduleName = null;
+    this.modifiedContacts.withoutAssignedModule = false;
+    this.modifiedContacts.deletionLockExceeded = false;
+    this.modifiedContacts.expiringDataInPast = false;
+    this.modifiedContacts = { ...this.modifiedContacts };
+  }
+
   private _setModifiedContactsSort() {
     if (this._sortingOrder && this._sortingContactType) {
       const sort = this._sortingContactType + ',' + this._sortingOrder;
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
index 7865c91..a8950ec 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
@@ -49,6 +49,13 @@
           </div>
         </div>
 
+        <div class="syncAlertMessage" *ngIf="internalPersonSandBox.showSyncAlertMessage">
+          <span>
+            Achtung: <br />Dieser Kontakt wird mit einem anderen System synchronisiert. <br />
+            Manuelle Änderungen gehen möglicherweise verloren.
+          </span>
+        </div>
+
         <!-- title -->
         <div class="form-group row">
           <label for="title" class="col-sm-2 col-form-label">{{ 'Internal.PersonTitle' | translate }}</label>
@@ -123,7 +130,7 @@
               autocomplete="off"
             />
           </div>
-          <button type="button" (click)="internalPersonSandBox.setLdapUidValue(null)" class="tool-icon">
+          <button type="button" style="flex-basis: 10px;" (click)="internalPersonSandBox.setLdapUidValue(null)" class="tool-icon">
             <fa name="trash"></fa>
           </button>
         </div>
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
index d73298c..4b7805a 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
@@ -52,3 +52,13 @@
 .expandable-module-assignment .collapse5 {
   height: 338px;
 }
+.syncAlertMessage {
+  position: absolute;
+  top: 0px;
+  left: 50vw;
+  margin: 20px 20px 20px 0;
+  padding: 14px;
+  font-size: 20px;
+  background-color: rgba(255, 178, 0, 0.2);
+  border: 1px solid rgba(0, 0, 0, 0.15);
+}
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
index 707545e..b242671 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
@@ -49,7 +49,7 @@
   public isCommunicationsDataDetailViewVisible: boolean = false;
   public isAddressDataDetailViewVisible: boolean = false;
   public existMainAddress = false;
-  public showSynchAlertMessage = false;
+  public showSyncAlertMessage = false;
   public isCurrentAddressMainAddress = false;
   public internalPersonContactId: string;
   private _currentInternalPerson: InternalPerson = null;
@@ -255,6 +255,8 @@
     // subscribes to formState
     this.internalPersonDetailsFormState$.pipe(takeUntil(this._endSubscriptions$)).subscribe((formState: FormGroupState<InternalPerson>) => {
       this.internalPersonDetailsCurrentFormState = formState;
+
+      this.showSyncAlertMessage = !!formState.value && (!!formState.value.uid || !!formState.value.userRef) ? true : false;
     });
   }
 
diff --git a/src/app/shared/asyncServices/http/httpResponseHandler.service.ts b/src/app/shared/asyncServices/http/httpResponseHandler.service.ts
index eb5da94..8af4088 100644
--- a/src/app/shared/asyncServices/http/httpResponseHandler.service.ts
+++ b/src/app/shared/asyncServices/http/httpResponseHandler.service.ts
@@ -59,6 +59,9 @@
         this.handleServerError();
         break;
 
+      case 504:
+        this.handleServerTimeoutError();
+        break;
       default:
         break;
     }
@@ -160,7 +163,12 @@
       }
     }
   }
+  private handleServerTimeoutError(): void {
+    const message = this.translateService.instant('ServerError504'),
+      title = this.translateService.instant('ErrorNotificationTitle');
 
+    this.showNotificationError(title, message);
+  }
   /**
    * Extracts and returns translated value from server response
    *
diff --git a/src/app/shared/models/modifiedContacts.model.ts b/src/app/shared/models/modifiedContacts.model.ts
index ab6c092..233ca62 100644
--- a/src/app/shared/models/modifiedContacts.model.ts
+++ b/src/app/shared/models/modifiedContacts.model.ts
@@ -16,9 +16,9 @@
   public sort: string = null;
   public isDSGVOFilterAdvancedVisible: boolean = null;
   public moduleName: string = null;
-  public withoutAssignedModule: boolean = null;
-  public expiringDataInPast: boolean = null;
-  public deletionLockExceeded: boolean = null;
+  public withoutAssignedModule: boolean = false;
+  public expiringDataInPast: boolean = false;
+  public deletionLockExceeded: boolean = false;
 
   public constructor(data: any = null) {
     Object.keys(data || {})
