diff --git a/entity/Pers_entity/Pers_entity.aod b/entity/Pers_entity/Pers_entity.aod
index 0dd258c28f01b5689fb8143914c9960f3594e085..fff3b24f67d41d3aa380f9eed2495c5a03866bd3 100644
--- a/entity/Pers_entity/Pers_entity.aod
+++ b/entity/Pers_entity/Pers_entity.aod
@@ -416,11 +416,13 @@
       <name>STANDARD_EMAIL_COMM</name>
       <title>E-Mail</title>
       <outgoingField>PersCommEmail_dfo</outgoingField>
+      <onValueChange>%aditoprj%/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js</onValueChange>
     </entityField>
     <entityField>
       <name>STANDARD_PHONE_COMM</name>
       <title>Phone</title>
       <outgoingField>PersCommPhone_dfo</outgoingField>
+      <onValueChange>%aditoprj%/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js</onValueChange>
     </entityField>
     <entityOutgoingField>
       <name>PersCommPhone_dfo</name>
diff --git a/entity/Pers_entity/entityfields/image/onValueChange.js b/entity/Pers_entity/entityfields/image/onValueChange.js
index 368310478f68a4f034d6245e41a6a9e90deb3f69..f7fffb124f892cacb684ac531a608d61bae0ad4e 100644
--- a/entity/Pers_entity/entityfields/image/onValueChange.js
+++ b/entity/Pers_entity/entityfields/image/onValueChange.js
@@ -1,12 +1,4 @@
-import("system.vars");
-import("system.neon");
+import("Entity_lib");
 
 // TODO: also there is currently no good way to do updates with fields not connected to the record container. Workaround: imagevariable and update in onDBUpdate Process
-if (vars.get("$field.IMAGE"))
-{
-    vars.set("$image.changedImage", true);
-}
-else
-{
-    vars.set("$image.changedImage", "deleted");
-}
+FieldChanges.setChange("$field.IMAGE");
\ No newline at end of file
diff --git a/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js b/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..4572302a6feaf84e3aa89ff8fd0fde83552075b0
--- /dev/null
+++ b/entity/Pers_entity/entityfields/standard_email_comm/onValueChange.js
@@ -0,0 +1,4 @@
+import("Entity_lib");
+
+// TODO: also there is currently no good way to do updates with fields not connected to the record container. Workaround: imagevariable and update in onDBUpdate Process
+FieldChanges.setChange("$field.STANDARD_EMAIL_COMM");
\ No newline at end of file
diff --git a/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js b/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..fc6615da8d114efa6d05c7f5fea04cfc4ba0fd8a
--- /dev/null
+++ b/entity/Pers_entity/entityfields/standard_phone_comm/onValueChange.js
@@ -0,0 +1,4 @@
+import("Entity_lib");
+
+// TODO: also there is currently no good way to do updates with fields not connected to the record container. Workaround: imagevariable and update in onDBUpdate Process
+FieldChanges.setChange("$field.STANDARD_PHONE_COMM");
\ No newline at end of file
diff --git a/entity/Pers_entity/recordcontainers/db/onDBUpdate.js b/entity/Pers_entity/recordcontainers/db/onDBUpdate.js
index e1ed5102d903a176cee1702a6f01fabe2c4b5ff3..58697e7bda169e7a66735bbea8359527069e9213 100644
--- a/entity/Pers_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Pers_entity/recordcontainers/db/onDBUpdate.js
@@ -1,21 +1,22 @@
 import("system.vars");
-import("Pers_lib");
+import("Org_lib");
+import("Comm_lib");
+import("Entity_lib");
 
 // TODO: this is a workaround for missing possibility to react on changes of fields not connected to record Contqainer
-if (vars.exists("$image.changedImage"))
-{
-    if (vars.get("$image.changedImage"))
-    {
-        var imageData = vars.getString("$field.IMAGE");
-        if (vars.get("$image.changedImage") != "deleted")
-        {
-            PersUtils.setImage(vars.get("$field.PERSID"), imageData);
-        }
-        else
-        {
-            PersUtils.removeImage(vars.get("$field.PERSID"));
-        }
-    }
-}
+FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function(state, value){
+    if (state == FieldChanges.STATE_CHANGED())
+        PersUtils.setImage(vars.get("$field.PERSID"), value);
+    else
+        PersUtils.removeImage(vars.get("$field.PERSID"));
+});
 
-vars.set("$image.changedImage", false);
+
+var uid = vars.get("$sys.uid");
+FieldChanges.assimilateChangeAndDispose("$field.STANDARD_EMAIL_COMM", function(state, value){
+    CommUtil.setStandardMail(uid, value);
+});
+
+FieldChanges.assimilateChangeAndDispose("$field.STANDARD_PHONE_COMM", function(state, value){
+    CommUtil.setStandardPhone(uid, value);
+});