diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index c2a53c27f121cce774b392c32562c0bf65569073..954b18c3d26f2ffeb3f2ef532cdee3d267812f45 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -395,6 +395,12 @@
       <title>subject</title>
       <linkedContext>Task</linkedContext>
     </entityField>
+    <entityParameter>
+      <name>FilterOnlyOwnTask_param</name>
+      <valueProcess>%aditoprj%/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js</valueProcess>
+      <expose v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js b/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e0f3ec47e2b963a577204e41d9847dd6ad0725a8
--- /dev/null
+++ b/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(false);
\ No newline at end of file
diff --git a/entity/Task_entity/recordcontainers/db/conditionProcess.js b/entity/Task_entity/recordcontainers/db/conditionProcess.js
index 28d6be4aaec51ac7f9ed51fd64dc1cf6029462c1..923b39eb1ad3e4f8da08275b3786b33bf2ed135c 100644
--- a/entity/Task_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Task_entity/recordcontainers/db/conditionProcess.js
@@ -1,18 +1,29 @@
+import("Employee_lib");
 import("system.vars");
 import("system.db");
 import("system.result");
 import("Sql_lib");
 
 var cond = new SqlCondition();
+var alternativeFallbackCondition = "1 = 1";
+
+if (vars.getString("$param.FilterOnlyOwnTask_param") == "true")
+{
+    var ownContactId = EmployeeUtils.getCurrentContactId();
+    if (ownContactId)
+        cond.andPrepareIfSet("TASK.EDITOR_CONTACT_ID", ownContactId);
+    else
+        alternativeFallbackCondition = "1 = 2";
+}
 if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param"))
 {
     var activityLinkCond = SqlCondition.begin().andPrepareVars("TASKLINK.OBJECT_ROWID", "$param.RowId_param")
                                                .andPrepareVars("TASKLINK.OBJECT_TYPE", "$param.ObjectId_param");
 
-                                                            // TODO: more performant way than IN. Maybe a join??
+                                                            // TODO: more performant way than IN. Maybe a join?
     cond.and(db.translateStatement(activityLinkCond.buildSql("TASK.TASKID in (select TASKLINK.TASK_ID from TASKLINK", "1=2", ")")))
 }
 
 //TODO: use a preparedCondition when available #1030812 #1034026
-var resCond = db.translateCondition(cond.build("1 = 1"));
+var resCond = db.translateCondition(cond.build(alternativeFallbackCondition));
 result.string(resCond);
diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod
index 7494ed682d3d8d7b6016785637023c1432aa9007..71b689354145bd3359f1dc80cfa43ca8ae4510f8 100644
--- a/neonView/TaskFilter_view/TaskFilter_view.aod
+++ b/neonView/TaskFilter_view/TaskFilter_view.aod
@@ -18,6 +18,12 @@
           <title>Tasks</title>
         </neonDashletCategory>
       </categories>
+      <parameters>
+        <neonDashletParameter>
+          <name>FilterOnlyOwnTask_param</name>
+          <value>true</value>
+        </neonDashletParameter>
+      </parameters>
     </neonDashletConfiguration>
   </dashletConfigurations>
   <layout>