diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index c820622..68b47af 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -181,11 +181,11 @@
                 && !mPhoneNumberUtilsWrapper.isVoicemailNumber(details.accountHandle,
                         details.number)) {
 
-            if (details.numberLabel == ContactInfo.GEOCODE_AS_LABEL) {
+            if (TextUtils.isEmpty(details.name) && !TextUtils.isEmpty(details.geocode)) {
                 numberFormattedLabel = details.geocode;
             } else {
-                numberFormattedLabel = Phone.getTypeLabel(mResources, details.numberType,
-                        details.numberLabel);
+                numberFormattedLabel = Phone.getTypeLabel(
+                        mResources, details.numberType, details.numberLabel);
             }
         }
 
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index effe142..357c832 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -48,8 +48,6 @@
 
     public static ContactInfo EMPTY = new ContactInfo();
 
-    public static String GEOCODE_AS_LABEL = "";
-
     public int sourceType = 0;
 
     @Override
diff --git a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
index 9edbbc9..2ee38cb 100644
--- a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
@@ -389,7 +389,6 @@
         details.date = TEST_DATE;
         details.duration = TEST_DURATION;
         details.geocode = TEST_GEOCODE;
-        details.numberLabel = ContactInfo.GEOCODE_AS_LABEL;
     }
 
     private boolean isVoicemail(String number) {
diff --git a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
index df6719c..18b78f1 100644
--- a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
@@ -227,8 +227,6 @@
     @MediumTest
     public void testBindView_WithCachedName() {
         mCursor.moveToFirst();
-        // provide a default custom label instead of an empty string, which corresponds to
-        // {@value com.android.dialer.calllog.ContactInfo#GEOCODE_AS_LABEL}
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
         CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
@@ -255,8 +253,6 @@
     @MediumTest
     public void testBindView_HomeLabel() {
         mCursor.moveToFirst();
-        // provide a default custom label instead of an empty string, which corresponds to
-        // {@value com.android.dialer.calllog.ContactInfo#GEOCODE_AS_LABEL}
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
         CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
@@ -270,8 +266,6 @@
     @MediumTest
     public void testBindView_WorkLabel() {
         mCursor.moveToFirst();
-        // provide a default custom label instead of an empty string, which corresponds to
-        // {@link com.android.dialer.calllog.ContactInfo#GEOCODE_AS_LABEL}
         insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
                 "John Doe", Phone.TYPE_WORK, TEST_DEFAULT_CUSTOM_LABEL);
         CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
