diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4069c49..7bbeea1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1729,4 +1729,7 @@
     -->
     <string name="description_call_log_unheard_voicemail">Unheard voicemail</string>
 
+    <!-- The string used to represent an unknown location for a phone number in the call log [CHAR LIMIT=3] -->
+    <string name="call_log_empty_gecode">-</string>
+
 </resources>
diff --git a/src/com/android/contacts/PhoneCallDetailsHelper.java b/src/com/android/contacts/PhoneCallDetailsHelper.java
index 019e608..f312a5d 100644
--- a/src/com/android/contacts/PhoneCallDetailsHelper.java
+++ b/src/com/android/contacts/PhoneCallDetailsHelper.java
@@ -111,8 +111,13 @@
             mPhoneNumberHelper.getDisplayNumber(details.number, details.formattedNumber);
         if (TextUtils.isEmpty(details.name)) {
             nameText = displayNumber;
-            numberText = mPhoneNumberHelper.getGeocodeForNumber(
+            String geocode = mPhoneNumberHelper.getGeocodeForNumber(
                     details.number.toString(), details.countryIso);
+            if (TextUtils.isEmpty(geocode)) {
+                numberText = mResources.getString(R.string.call_log_empty_gecode);
+            } else {
+                numberText = geocode;
+            }
         } else {
             nameText = details.name;
             if (numberFormattedLabel != null) {
diff --git a/tests/src/com/android/contacts/PhoneCallDetailsHelperTest.java b/tests/src/com/android/contacts/PhoneCallDetailsHelperTest.java
index 3f4e49c..8feca19 100644
--- a/tests/src/com/android/contacts/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/contacts/PhoneCallDetailsHelperTest.java
@@ -181,6 +181,18 @@
         }
     }
 
+    public void testSetPhoneCallDetails_NoGeocode() {
+        LocaleTestUtils localeTestUtils = new LocaleTestUtils(getContext());
+        localeTestUtils.setLocale(Locale.US);
+        try {
+            setPhoneCallDetailsWithNumber("+0", "+0");
+            assertNameEquals("+0");  // The phone number is shown as the name.
+            assertNumberEquals("-");  // The empty geocode is shown as the number.
+        } finally {
+            localeTestUtils.restoreLocale();
+        }
+    }
+
     public void testSetPhoneCallDetails_NameOnly() {
         setPhoneCallDetailsNameOnly();
         assertEquals(View.VISIBLE, mViews.nameView.getVisibility());
