diff --git a/entity/WorkflowTask_entity/WorkflowTask_entity.aod b/entity/WorkflowTask_entity/WorkflowTask_entity.aod
index f5bcf9949894d5335e68613b990e62b9066e0208..938fbcdc991e33b51be6bc7134499438ac1fbabd 100644
--- a/entity/WorkflowTask_entity/WorkflowTask_entity.aod
+++ b/entity/WorkflowTask_entity/WorkflowTask_entity.aod
@@ -27,9 +27,11 @@
     </entityField>
     <entityField>
       <name>FORMDEFINITION</name>
+      <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>FORMRESULT</name>
+      <onValueChange>%aditoprj%/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js</onValueChange>
     </entityField>
     <entityField>
       <name>NAME</name>
@@ -257,9 +259,6 @@
           <isFilterable v="true" />
           <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
-        <jDitoRecordFieldMapping>
-          <name>FORMDEFINITION.value</name>
-        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>FORMRESULT.value</name>
         </jDitoRecordFieldMapping>
diff --git a/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js b/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8fc3f05f70c0f41c45cc8b15489f265bfd8695d4
--- /dev/null
+++ b/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.vars");
+import("system.workflow");
+import("system.neon");
+
+//the value of this field can be set by the onValueChange process of FORMRESULT
+
+if (vars.get("$this.value") == null)
+    result.string(workflow.getFormProperties(vars.get("$field.UID")));
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js b/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..9e42cd8ca79fe0f490ba13b7c5a732bfe0c5f0d0
--- /dev/null
+++ b/entity/WorkflowTask_entity/entityfields/formresult/onValueChange.js
@@ -0,0 +1,25 @@
+import("system.result");
+import("system.vars");
+import("system.workflow");
+import("system.neon");
+
+var taskId = vars.get("$field.UID");
+var newResult = vars.get("$local.value");
+var oldResult = vars.get("$field.FORMRESULT");
+
+if (newResult && newResult !== oldResult)
+{
+    /*
+     * fieldListeners = all fields that are used inside a visibility expression
+     * -> if one of these fields is changed, set the new FORMDEFINITION
+     */
+    var fieldListeners = JSON.parse(workflow.getFormFieldListeners(taskId));
+    newResult = newResult ? JSON.parse(newResult) : {};
+    oldResult = oldResult ? JSON.parse(oldResult) : {};
+    var isRefreshRequired = fieldListeners.some(function (fieldId)
+    {
+        return newResult[fieldId] !== oldResult[fieldId];
+    });
+    if (isRefreshRequired)
+        neon.setFieldValue("$field.FORMDEFINITION", workflow.getFormProperties(taskId, newResult));
+}
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js
index de6e83f10c3755c6281daacaedff352aeb93ba55..ed15981f641e6ef0941c2d5298ba177b24c8a080 100644
--- a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js
@@ -96,7 +96,6 @@ result.object((function ()
             task.processDefinitionId,
             task.processInstanceId,
             Date.parse(task.createTime).toString(),
-            workflow.getFormProperties(task.id) || "",
             "",
             variables.USER_ID || "",
             task.description || "",