diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index eaef0a5de0dc211397c3104b9307dc03a2661b11..0635d3468e34ac2cae511945b81049a7e5488265 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -5,6 +5,9 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Person_entity/documentation.adoc</documentation>
   <title>Contact</title>
+  <siblings>
+    <element>Address_entity</element>
+  </siblings>
   <grantDeleteProcess>%aditoprj%/entity/Person_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Person_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/Person_entity/afterUiInit.js</afterUiInit>
@@ -194,6 +197,10 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           <name>ShowDsgvoMessage_param</name>
           <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/showdsgvomessage_param/valueProcess.js</valueProcess>
         </entityParameter>
+        <entityParameter>
+          <name>ContactsMainCountry_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactsmaincountry_param/valueProcess.js</valueProcess>
+        </entityParameter>
       </children>
     </entityConsumer>
     <entityConsumer>
@@ -1108,6 +1115,36 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
       <name>OnlyOwnSupervised_param</name>
       <expose v="true" />
     </entityParameter>
+    <entityField>
+      <name>IndexPhoneticLastname</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/indexphoneticlastname/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>IndexPhoneticFirstname</name>
+      <valueProcess>%aditoprj%/entity/Person_entity/entityfields/indexphoneticfirstname/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>SelfDuplicatesUncached</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Person_entity</entityName>
+        <fieldName>SelfDuplicatesProvider</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>DuplicateActionsControl_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicateactionscontrol_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>DuplicateCurrentContactId_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicatecurrentcontactid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>OnlyShowContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -1386,7 +1423,7 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
         </indexRecordFieldMapping>
         <indexRecordFieldMapping>
           <name>LASTNAME.value</name>
-          <indexFieldType>PHONETIC_NAME</indexFieldType>
+          <indexFieldType>TEXT_NO_STOPWORDS</indexFieldType>
           <isBoosted v="true" />
         </indexRecordFieldMapping>
         <indexRecordFieldMapping>
@@ -1457,6 +1494,20 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact
           </additionalFieldNameAliases>
           <isMultiValued v="true" />
         </indexRecordFieldMapping>
+        <indexRecordFieldMapping>
+          <name>IndexPhoneticFirstname.value</name>
+          <indexFieldType>PHONETIC_NAME</indexFieldType>
+          <additionalFieldNameAliases>
+            <element>firstname</element>
+          </additionalFieldNameAliases>
+        </indexRecordFieldMapping>
+        <indexRecordFieldMapping>
+          <name>IndexPhoneticLastname.value</name>
+          <indexFieldType>PHONETIC_NAME</indexFieldType>
+          <additionalFieldNameAliases>
+            <element>lastname</element>
+          </additionalFieldNameAliases>
+        </indexRecordFieldMapping>
       </indexFieldMappings>
     </indexRecordContainer>
   </recordContainers>
diff --git a/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicateactionscontrol_param/valueProcess.js b/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicateactionscontrol_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..81570217c3ecd3cf76deb5e14d7ac0a6121a59bb
--- /dev/null
+++ b/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicateactionscontrol_param/valueProcess.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("1");//todo use keyword
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicatecurrentcontactid_param/valueProcess.js b/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicatecurrentcontactid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..821415ae694dd9c3d98a7703f4c59b81a37f524b
--- /dev/null
+++ b/entity/Person_entity/entityfields/selfduplicatesuncached/children/duplicatecurrentcontactid_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.vars");
+import("system.result");
+result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js b/entity/Person_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e6e230e4586c88bdb54b48fdd7c795c95fb79047
--- /dev/null
+++ b/entity/Person_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js
@@ -0,0 +1,52 @@
+import("system.indexsearch");
+import("system.project");
+import("system.logging");
+import("system.vars");
+import("DuplicateScanner_lib");
+import("system.result");
+
+let targetEntity = "Person_entity";
+let valuesToCheck = {};
+var entityModel = project.getEntityStructure(targetEntity);
+
+ //Read the values of all available entity fields and write the fieldname7value combination
+ //as key/value pairs into an object. This is used to trigger the scan for duplicates
+let fieldValue = "";
+let entityFields = [];
+for (fieldname in entityModel.fields) 
+{ 
+    field = entityModel.fields[fieldname]; 
+    if(field.fieldType == project.ENTITYFIELDTYPE_FIELD)
+    {
+        fieldValue = vars.get("$field." + field.name);
+        
+        if(fieldValue != null && fieldValue != "")
+        {
+//            logging.log("field.name -> " + field.name);
+            valuesToCheck[field.name] = fieldValue;
+//            logging.log("field value -> " + fieldValue);
+        }
+    }
+}
+
+let scanResults = DuplicateScannerUtils.ScanForDuplicates("PersonDuplicates", targetEntity,
+valuesToCheck, null);
+
+let duplicateIds = [];
+//Run thru every duplicate result and read out the id. 
+//Do it now to have a simple array on all usages lateron.
+for (let i = 0; i < scanResults.length; i++)
+{
+    let duplicateContactId = scanResults[i][indexsearch.FIELD_ID];
+    duplicateIds.push(duplicateContactId);
+}
+logging.log("duplicateIds.length -> " + duplicateIds.length);
+/*
+ * To achieve that if there are no duplicates, no contacts should be shown and therefore returned by the 
+ * recordcontainer, an invalid id gets returned. It then is used in the conditionProcess to load the duplicates.
+ * Because of its invalidity, no records are shown.
+*/
+if(duplicateIds.length == 0)
+    result.string(JSON.stringify(["nodata"]));
+else
+    result.string(JSON.stringify(duplicateIds));
\ No newline at end of file
diff --git a/neonView/PersonMain_view/PersonMain_view.aod b/neonView/PersonMain_view/PersonMain_view.aod
index 527484f8846118dd84eb544f6b16f4e3a30e21c4..d9124c0e81f13c34cb9851f254eb12b38e981e8b 100644
--- a/neonView/PersonMain_view/PersonMain_view.aod
+++ b/neonView/PersonMain_view/PersonMain_view.aod
@@ -69,5 +69,10 @@
       <entityField>SelfDuplicates</entityField>
       <view>PersonFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>d8db5358-3aed-46d9-8e57-1fd093eb92ad</name>
+      <entityField>SelfDuplicatesUncached</entityField>
+      <view>PersonFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>