diff --git a/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js b/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js
index a5cd4a7eeb9c8339a024e0e000a8a6a86d8412f9..af2c2302ef38253d59b3d1f02f4394c56602a827 100644
--- a/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js
+++ b/entity/Appointment_entity/recordcontainers/jditorc/onInsert.js
@@ -33,7 +33,7 @@ if (vars.get("$field.REMINDER") != undefined && vars.get("$field.REMINDER") != "
     event[calendars.REMINDER_DURATION] = vars.get("$field.REMINDER");
 }
 event[calendars.ID] = calendars.insert([event])[0];
-vars.set("$image.editmode", calendars.MODE_UPDATE);
+vars.set("$context.editmode", calendars.MODE_UPDATE);
 ok = true;
 
 
@@ -42,7 +42,7 @@ ok = true;
 function getReadOnlyUser()
 {
     var writeable = calendars.getFullCalendarUsers(calendars.RIGHT_WRITE);	
-    var affectedusers = vars.get("$image.affectedusers");
+    var affectedusers = vars.get("$context.affectedusers");
     var readonly = new Array();
 
     for ( i = 0; i < affectedusers.length; i++)
diff --git a/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js b/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js
index d58c694cc4083e26687a5412ba419d64a8f1ecd9..ca56d2534e8dab41640bd09971f54b1e446ac03f 100644
--- a/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js
+++ b/entity/Appointment_entity/recordcontainers/jditorc/onUpdate.js
@@ -54,7 +54,7 @@ if(vars.exists("$param.entry"))
 // Liefert die AffectedUsers
 function getAffectedUsers( pEvent )
 {
-        var affectedusers = vars.get("$image.affectedusers");   
+        var affectedusers = vars.get("$context.affectedusers");   
         var attendess = pEvent[calendars.ATTENDEES]
         var calendarusers = [];
         for ( var i = 0; i < affectedusers.length; i++)   
@@ -88,7 +88,7 @@ function getAffectedUsers( pEvent )
 function getReadOnlyUser()
 {
     var writeable = calendars.getFullCalendarUsers(calendars.RIGHT_WRITE);	
-    var affectedusers = vars.get("$image.affectedusers");
+    var affectedusers = vars.get("$context.affectedusers");
     var readonly = new Array();
 
     for ( i = 0; i < affectedusers.length; i++)
diff --git a/entity/Product_entity/entityfields/image/onValueChange.js b/entity/Product_entity/entityfields/image/onValueChange.js
index 147134e54ce8c1fa74578fa3c83e51112359e762..4997061690d757b4a7e50c905c0331a6f8897d40 100644
--- a/entity/Product_entity/entityfields/image/onValueChange.js
+++ b/entity/Product_entity/entityfields/image/onValueChange.js
@@ -1,12 +1,5 @@
 import("system.vars");
+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
-var newImage = vars.get("$field.IMAGE");
-if (newImage)
-{
-    vars.set("$image.changedImage", newImage);
-}
-else
-{
-    vars.set("$image.changedImage", "deleted");
-}
\ No newline at end of file
+FieldChanges.setChange("$field.IMAGE");
\ No newline at end of file
diff --git a/entity/Product_entity/recordcontainers/db/onDBUpdate.js b/entity/Product_entity/recordcontainers/db/onDBUpdate.js
index 2c9deb924d4746a795bdfa98364a56bcacdc26a6..0c6ec72c75985fd9286df4b1a4327b2fdfc58978 100644
--- a/entity/Product_entity/recordcontainers/db/onDBUpdate.js
+++ b/entity/Product_entity/recordcontainers/db/onDBUpdate.js
@@ -1,21 +1,11 @@
 import("system.vars");
 import("Product_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")
-        {
-            ProductUtils.setImage(vars.get("$field.PRODUCTID"), imageData);
-        }
-        else
-        {
-            ProductUtils.removeImage(vars.get("$field.PRODUCTID"));
-        }
-    }
+FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function(state, value){
+    if (state == FieldChanges.STATE_CHANGED())
+        ProductUtils.setImage(vars.get("$field.PRODUCTID"), value);
+    else
+        ProductUtils.removeImage(vars.get("$field.PRODUCTID"));
 }
-
-vars.set("$image.changedImage", false);
\ No newline at end of file
diff --git a/process/Entity_lib/process.js b/process/Entity_lib/process.js
index f4f63e47f81458f913cc8b8b33108bf8c9c73b14..17fac1f11a52cb890368e594610d8b95a1e8bab5 100644
--- a/process/Entity_lib/process.js
+++ b/process/Entity_lib/process.js
@@ -138,9 +138,9 @@ FieldChanges.setChange = function(pFieldName)
  */
 FieldChanges._getStorage = function()
 {
-    if (!vars.exists("$image.FieldChanges"))
+    if (!vars.exists("$context.FieldChanges"))
         return {};
-    return vars.get("$image.FieldChanges");
+    return vars.get("$context.FieldChanges");
 };
 
 /**
@@ -149,5 +149,5 @@ FieldChanges._getStorage = function()
  */
 FieldChanges._setStorage = function(pAllChanges)
 {
-    return vars.set("$image.FieldChanges", pAllChanges);
+    return vars.set("$context.FieldChanges", pAllChanges);
 };
\ No newline at end of file