diff --git a/entity/Employee_entity/entityfields/email_address/dropDownProcess.js b/entity/Employee_entity/entityfields/email_address/dropDownProcess.js
index da419b6e5ea563cb1659058ed6999d65218ce082..1e6f7e670fc70b7c1fcdd6f78318b624d9c9cf07 100644
--- a/entity/Employee_entity/entityfields/email_address/dropDownProcess.js
+++ b/entity/Employee_entity/entityfields/email_address/dropDownProcess.js
@@ -1,26 +1,26 @@
-import("Communication_lib");
-import("system.neon");
-import("system.vars");
-import("system.db");
-import("system.result");
-import("Sql_lib");
-
-var contactId = vars.get("$field.CONTACT_ID");
-if (contactId)
-{
-    var sql = SqlCondition.begin()
-        .andPrepare("COMMUNICATION.CONTACT_ID", contactId)
-        .and("COMMUNICATION.MEDIUM_ID in ('" + CommUtil.getMediumIdsByCategory("EMAIL").join("', '") + "')")
-        .buildSql("select ADDR, ADDR from COMMUNICATION");
-    
-    var addresses = db.table(sql);
-    
-    //include the currently set email address
-    var currentAddress = vars.get("$field.EMAIL_ADDRESS");
-    if (currentAddress && !addresses.some(function (row) {return row[0] == currentAddress;}))
-    {
-        addresses.push([currentAddress, currentAddress]);
-    }   
-    
-    result.object(addresses);
+import("Communication_lib");
+import("system.neon");
+import("system.vars");
+import("system.db");
+import("system.result");
+import("Sql_lib");
+
+var contactId = vars.get("$field.CONTACT_ID");
+if (contactId && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW))
+{
+    var sql = SqlCondition.begin()
+        .andPrepare("COMMUNICATION.CONTACT_ID", contactId)
+        .and("COMMUNICATION.MEDIUM_ID in ('" + CommUtil.getMediumIdsByCategory("EMAIL").join("', '") + "')")
+        .buildSql("select ADDR, ADDR from COMMUNICATION");
+    
+    var addresses = db.table(sql);
+    
+    //include the currently set email address
+    var currentAddress = vars.get("$field.EMAIL_ADDRESS");
+    if (currentAddress && !addresses.some(function (row) {return row[0] == currentAddress;}))
+    {
+        addresses.push([currentAddress, currentAddress]);
+    }   
+    
+    result.object(addresses);
 }
\ No newline at end of file
diff --git a/entity/Employee_entity/recordcontainers/jdito/contentProcess.js b/entity/Employee_entity/recordcontainers/jdito/contentProcess.js
index 175260510da1e538cf01076746572566e3373f11..61bf29a24123620584dc00946b74a781d10b7f47 100644
--- a/entity/Employee_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Employee_entity/recordcontainers/jdito/contentProcess.js
@@ -1,3 +1,5 @@
+import("Sql_lib");
+import("system.db");
 import("Attribute_lib");
 import("system.vars");
 import("system.result");
@@ -18,8 +20,11 @@ else
     users = tools.getUsersByAttribute(tools.ISACTIVE, values, tools.PROFILE_FULL);
 }
 
+var contactIds = [];
 users = users.map(function (user)
 {
+    contactIds.push(user[tools.PARAMS][tools.CONTACTID]);
+    
     return [
         user[tools.NAME],
         user[tools.TITLE],
@@ -29,13 +34,28 @@ users = users.map(function (user)
         user[tools.PARAMS][tools.EMAIL],
         user[tools.PARAMS][tools.EMAIL],
         user[tools.DESCRIPTION],
-        user[tools.PARAMS][tools.CONTACTID],
-        ContactUtils.getTitleByContactId(user[tools.PARAMS][tools.CONTACTID]), //TODO: get the names more efficiently
+        user[tools.PARAMS][tools.CONTACTID], //8
+        null,                                //9
         user[tools.PARAMS].department,
         ""
     ];
 });
 
+var renderer = new ContactTitleRenderer(Contact.createWithColumnPreset(), ContactTitleRenderer.OPTIONS.NoOption);
+var selectExpression = renderer.asSql();
+
+var names = db.table(SqlCondition.begin()
+    .andIn("CONTACT.CONTACTID", contactIds)
+    .buildSql("select CONTACTID, " + selectExpression + " from CONTACT \n\
+        left join PERSON on (PERSON.PERSONID = CONTACT.PERSON_ID)")
+);
+var nameMap = {};
+for (let i = 0, l = names.length; i < l; i++)
+    nameMap[names[i][0]] = names[i][1];
+
+for (let i = 0, l = users.length; i < l; i++)
+    users[i][9] = nameMap[users[i][8]] || "";
+
 var filter = vars.get("$local.filter"); 
 
 //TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method