diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
index c7b8b9964650d39d4485dc416d096bb9b14547a3..805cd843553b44db1fa41862d00a6f860b38af7c 100644
--- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod
+++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod
@@ -8,6 +8,7 @@
   </siblings>
   <contentTitleProcess>%aditoprj%/entity/PermissionDetail_entity/contentTitleProcess.js</contentTitleProcess>
   <iconIdProcess>%aditoprj%/entity/PermissionDetail_entity/iconIdProcess.js</iconIdProcess>
+  <titlePlural>Permission Details</titlePlural>
   <recordContainer>jDito</recordContainer>
   <entityFields>
     <entityProvider>
@@ -16,7 +17,9 @@
     <entityField>
       <name>CONDITION</name>
       <title>Condition</title>
+      <contentType>FILTER_TREE</contentType>
       <stateProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condition/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condition/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>ACTION</name>
diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js
index 28deb444c318b28bd734b722ef718b7537b24ade..7e35ace3e3ce47d5f46b1b494dff2c1ad9887f09 100644
--- a/entity/PermissionDetail_entity/contentTitleProcess.js
+++ b/entity/PermissionDetail_entity/contentTitleProcess.js
@@ -3,6 +3,8 @@ import("system.vars");
 import("system.result");
 
 var res = "";
+var entityName = vars.get("$field.ENTITY");
+var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
 
 switch (vars.get("$field.ACCESSTYPE")) {
     case "E":
@@ -25,7 +27,7 @@ switch (vars.get("$field.ACCESSTYPE")) {
         break;
 }
 
-if (vars.get("$field.CONDITION") != "") {
+if (vars.get("$field.CONDITION") != noCond && vars.get("$field.CONDITION") != "") {
     res += " - conditional";
 } else {
     res += " - default";
diff --git a/entity/PermissionDetail_entity/entityfields/condition/valueProcess.js b/entity/PermissionDetail_entity/entityfields/condition/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7a5aae60f3344712e5f1a7255faaadedf59efde
--- /dev/null
+++ b/entity/PermissionDetail_entity/entityfields/condition/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.logging");
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null) {
+    var entity = vars.get("$field.ENTITY");
+    logging.log("entity: " + entity);
+    result.string(JSON.stringify({entity: "" + entity + "", filter: {type: "group", operator: "AND", childs: []}}));
+}
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
index 3a8117c2036e0fd0b85fe1172c271059bb518746..b521f8d71824429bad1047462db01501a7c6fb4f 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("Permission_lib");
 import("system.neon");
 import("system.util");
@@ -57,6 +58,7 @@ if (checkInput([role, entity, accesstype, condtype, action])) {
     } else {
         // permission doesnt exist -> insert new permission
         // new permissionid is needed to link actions to the permission in the next step
+        logging.log("onInsert cond: " + condition);
         permissionid = PermissionUtil.insertNewPermission(permissionsetid, condition, condtype)
     }
     
diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js
index 999846f31bde5082d5b45cdd0f75ec7247317011..dab7d4ce7fd0d421255f6f5da9539667d87cb7d4 100644
--- a/process/Permission_lib/process.js
+++ b/process/Permission_lib/process.js
@@ -260,9 +260,13 @@ PermissionUtil.getRootFieldPermission = function(pPermId) {
  * @result {String} returns the id of the default permission of a given permission set. Never 'null', empty string if there is no result.
  */
 PermissionUtil.getDefaultPermission = function(pPermSetId) {
-    var sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION"
+    var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pPermSetId + "'";
+    var entityName = db.cell(sqlStr, alias);
+    var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+    
+    sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION"
     + " where ASYS_PERMISSIONSET_ID = '" + pPermSetId + "'"
-    + " and COND is null"
+    + " and (COND is null or COND = '" + noCond + "')";
     return db.cell(sqlStr, alias);
 }
 
@@ -274,9 +278,13 @@ PermissionUtil.getDefaultPermission = function(pPermSetId) {
  * @result {String[]} returns the ids of the conditional permissions of a given permission set. The result can never be null.
  */
 PermissionUtil.getConditionalPermission = function(pPermSetId) {
-    var sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION"
+    var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pPermSetId + "'";
+    var entityName = db.cell(sqlStr, alias);
+    var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
+    
+    sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION"
     + " where ASYS_PERMISSIONSET_ID = '" + pPermSetId + "'"
-    + " and COND is not null"
+    + " and COND is not null and COND not like '" + noCond + "'";
     return db.table(sqlStr, alias);
 }