diff --git a/src/com/android/messaging/datamodel/data/ConversationData.java b/src/com/android/messaging/datamodel/data/ConversationData.java
index 55d5bfc..5bddfeb 100644
--- a/src/com/android/messaging/datamodel/data/ConversationData.java
+++ b/src/com/android/messaging/datamodel/data/ConversationData.java
@@ -700,7 +700,7 @@
         final ParticipantData participant = this.getOtherParticipant();
         if (participant != null) {
             final String phoneNumber = participant.getSendDestination();
-            if (!TextUtils.isEmpty(phoneNumber) && MmsSmsUtils.isPhoneNumber(phoneNumber)) {
+            if (!TextUtils.isEmpty(phoneNumber) && MmsSmsUtils.isDialable(phoneNumber)) {
                 return phoneNumber;
             }
         }
diff --git a/src/com/android/messaging/sms/MmsSmsUtils.java b/src/com/android/messaging/sms/MmsSmsUtils.java
index 1a0ef99..aa20395 100644
--- a/src/com/android/messaging/sms/MmsSmsUtils.java
+++ b/src/com/android/messaging/sms/MmsSmsUtils.java
@@ -100,19 +100,27 @@
         return match.matches();
     }
 
+    /** True if c is ISO-LATIN characters 0-9, *, # , + */
+    public static final boolean isDialable(char c) {
+        return (c >= '0' && c <= '9') || c == '*' || c == '#' || c == '+';
+    }
+
     /**
-     * Returns true if the number is a Phone number
+     * Returns true if the address is a dialable phone number.
      *
-     * @param number the input number to be tested
-     * @return true if number is a Phone number
+     * @param address the input address to be tested
+     * @return true if address is a dialable phone number
      */
-    public static boolean isPhoneNumber(final String number) {
-        if (TextUtils.isEmpty(number)) {
+    public static boolean isDialable(final String address) {
+        if (TextUtils.isEmpty(address)) {
             return false;
         }
-
-        final Matcher match = Patterns.PHONE.matcher(number);
-        return match.matches();
+        for (int i = 0, count = address.length(); i < count; i++) {
+            if (!isDialable(address.charAt(i))) {
+                return false;
+            }
+        }
+        return true;
     }
 
     /**
