diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 50ce7de..7d7092d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -316,6 +316,8 @@
                  android:permission="android.permission.BIND_INCALL_SERVICE"
                  android:encryptionAware="true" >
             <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
+            <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
+                android:value="false"/>
             <intent-filter>
                 <action android:name="android.telecom.InCallService"/>
             </intent-filter>
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index 1020d10..40d963e 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -93,6 +93,7 @@
                 .add("type", type).add("label", label)
                 .add("number", number).add("formattedNumber",formattedNumber)
                 .add("normalizedNumber", normalizedNumber).add("photoId", photoId)
-                .add("photoUri", photoUri).add("objectId", objectId).toString();
+                .add("photoUri", photoUri).add("objectId", objectId)
+                .add("userType",userType).toString();
     }
 }
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index 4d8bb6d..afc621c 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -50,6 +50,7 @@
             final DirectoryPartition partition =
                 (DirectoryPartition) getPartition(getPartitionForPosition(position));
             final long directoryId = partition.getDirectoryId();
+            final boolean isExtendedDirectory = isExtendedDirectory(directoryId);
 
             info.name = item.getString(PhoneQuery.DISPLAY_NAME);
             info.type = item.getInt(PhoneQuery.PHONE_TYPE);
@@ -57,13 +58,22 @@
             info.number = item.getString(PhoneQuery.PHONE_NUMBER);
             final String photoUriStr = item.getString(PhoneQuery.PHOTO_URI);
             info.photoUri = photoUriStr == null ? null : Uri.parse(photoUriStr);
-            info.userType = DirectoryCompat.isEnterpriseDirectoryId(directoryId)
-                    ? ContactsUtils.USER_TYPE_WORK : ContactsUtils.USER_TYPE_CURRENT;
+            /*
+             * An extended directory is custom directory in the app, but not a directory provided by
+             * framework. So it can't be USER_TYPE_WORK.
+             *
+             * When a search result is selected, RegularSearchFragment calls getContactInfo and
+             * cache the resulting @{link ContactInfo} into local db. Set usertype to USER_TYPE_WORK
+             * only if it's NOT extended directory id and is enterprise directory.
+             */
+            info.userType = !isExtendedDirectory
+                    && DirectoryCompat.isEnterpriseDirectoryId(directoryId)
+                            ? ContactsUtils.USER_TYPE_WORK : ContactsUtils.USER_TYPE_CURRENT;
 
             cacheInfo.setLookupKey(item.getString(PhoneQuery.LOOKUP_KEY));
 
             final String sourceName = partition.getLabel();
-            if (isExtendedDirectory(directoryId)) {
+            if (isExtendedDirectory) {
                 cacheInfo.setExtendedSource(sourceName, directoryId);
             } else {
                 cacheInfo.setDirectorySource(sourceName, directoryId);
