diff --git a/process/IncomingCallExecutor_lib/process.js b/process/IncomingCallExecutor_lib/process.js
index ac21567d19fc3c9d4f98f7e425cb82031ef82ffa..dbbfdb150b18c7b1ae0b233cd5e2535060eb3b03 100644
--- a/process/IncomingCallExecutor_lib/process.js
+++ b/process/IncomingCallExecutor_lib/process.js
@@ -18,12 +18,14 @@ function IncomingCallExecutor(pCallData)
     this.callData.stateName = IncomingCallExecutor._callstateToText(this.callData.state);
     
     //collect contact and user data from *US*
-    this.contactsLocal = IncomingCallExecutor._getContactsFromNumber(this.callData.localAddress);
-    this.usersLocal = IncomingCallExecutor._getUsersFromContacts(this.contactsLocal);
+    this.contactsLocal = null;
+    this.usersLocal = null;
+    this.collectDataFromLocalInfo();
 
     //collect contact and user data from *THEM*
-    this.contactsCall = IncomingCallExecutor._getContactsFromNumber(this.callData.callAddress);
-    this.usersCall = IncomingCallExecutor._getUsersFromContacts(this.contactsCall);
+    this.contactsCall = null;
+    this.usersCall = null;
+    this.collectDataFromCallInfo();
     
     //key-value pairs of states-functions
     this._handlerFunctions = {};
@@ -55,6 +57,32 @@ IncomingCallExecutor.prototype.processPrivateData = function()
     }
 };
 
+IncomingCallExecutor.prototype.collectDataFromLocalInfo = function()
+{
+    this.usersLocal = [];
+    var users = tools.getUsersByAttribute(tools.PHONE_ADDRESS, [this.callData.localAddress], tools.PROFILE_DEFAULT);
+    var userContactIds = [];
+    
+    for (var i = 0, l = users.length; i < l; i++)
+    {
+        var user = users[i];
+        if (user[tools.PARAMS][tools.ISACTIVE] == "true")
+        {
+            this.usersLocal.push(user);
+            if (user[tools.PARAMS][tools.CONTACTID])
+                userContactIds.push(user[tools.PARAMS][tools.CONTACTID]);
+        }
+    }
+
+    this.contactsLocal = IncomingCallExecutor._getContactsFromNumber(null, userContactIds);
+};
+
+IncomingCallExecutor.prototype.collectDataFromCallInfo = function()
+{
+    this.contactsCall = IncomingCallExecutor._getContactsFromNumber(this.callData.callAddress);
+    this.usersCall = IncomingCallExecutor._getUsersFromContacts(this.contactsCall);
+};
+
 IncomingCallExecutor.prototype.logData = function()
 {
     logging.log("ctiServerEvents");
@@ -62,7 +90,7 @@ IncomingCallExecutor.prototype.logData = function()
     logging.log("contactsLocal>>" + JSON.stringify(this.contactsLocal));
     logging.log("usersLocal>>" + JSON.stringify(this.usersLocal));
     logging.log("contactsCall>>" + JSON.stringify(this.contactsCall));
-}
+};
 
 IncomingCallExecutor.prototype.getNotificationBaseConfig = function(pUserName)
 {
@@ -149,10 +177,10 @@ IncomingCallExecutor._callstateToText = function(pCallstate)
     return callstateName;
 };
 
-IncomingCallExecutor._getContactsFromNumber = function(pNumber)
+IncomingCallExecutor._getContactsFromNumber = function(pNumber, pContactIds)
 {
     var phoneNumber = pNumber;
-    if (!phoneNumber)
+    if (!phoneNumber && !pContactIds)
         return [];
     /*
     var config = entities.createConfigForLoadingRows().entity("Communication_entity")
@@ -172,12 +200,14 @@ IncomingCallExecutor._getContactsFromNumber = function(pNumber)
     */
     //load entities does not work here, so use instead a traditional sql-query:
     var contactSql = SqlCondition.begin()
-    .andPrepare("COMMUNICATION.ADDR", phoneNumber)
-    .andPrepare("CONTACT.STATUS", $KeywordRegistry.contactStatus$active())
-    .buildSql("select CONTACT.CONTACTID, CONTACT.ORGANISATION_ID, ORGANISATION.NAME, CONTACT.PERSON_ID, CONTACT.ISOLANGUAGE, PERSON.LASTNAME, PERSON.FIRSTNAME from CONTACT \n\
-                            join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID \n\
-                            left join PERSON on CONTACT.PERSON_ID = PERSON.PERSONID \n\
-                            join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID");
+                                 .andPrepareIfSet("COMMUNICATION.ADDR", phoneNumber)
+                                 .andIn("COMMUNICATION.CONTACT_ID", pContactIds)//this is automatically only added if pContactIds is truely
+                                 .andPrepare("CONTACT.STATUS", $KeywordRegistry.contactStatus$active())
+                                 .buildSql("select CONTACT.CONTACTID, CONTACT.ORGANISATION_ID, ORGANISATION.NAME, CONTACT.PERSON_ID, \n\
+                                                   CONTACT.ISOLANGUAGE, PERSON.LASTNAME, PERSON.FIRSTNAME from CONTACT \n\
+                                          join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID \n\
+                                          left join PERSON on CONTACT.PERSON_ID = PERSON.PERSONID \n\
+                                          join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID");
 
     var contacts = db.table(contactSql);
     
@@ -219,12 +249,16 @@ IncomingCallExecutor.prototype.getLocaleFromUser = function(pUserObject)
 
 IncomingCallExecutor.prototype.getFormattedLocalAddress = function()
 {
-    return this.callData.localAddress;
+    return IncomingCallExecutor.formatAddress(this.callData.localAddress);
 }
 
 
 IncomingCallExecutor.prototype.getFormattedCallAddress = function()
 {
-    return this.callData.callAddress;
+    return IncomingCallExecutor.formatAddress(this.callData.callAddress);
 }
 
+IncomingCallExecutor.formatAddress = function (pAddress)
+{
+    return cti.formatPhoneNumber(pAddress.replace(/P?J?SIP\//, ""), true, null);
+}