diff --git a/src/com/android/contacts/calllog/CallLogFragment.java b/src/com/android/contacts/calllog/CallLogFragment.java
index 1b5fcb2..49a6043 100644
--- a/src/com/android/contacts/calllog/CallLogFragment.java
+++ b/src/com/android/contacts/calllog/CallLogFragment.java
@@ -181,7 +181,7 @@
     }
 
     /** Encapsulates the information needed to call a number from the call log. */
-    private static final class NumberAndType {
+    public static final class NumberAndType {
         private final String mNumber;
         private final long mRowId;
         private final int mCallType;
@@ -194,6 +194,10 @@
             mVoicemailUri = voicemailUri;
         }
 
+        public String getNumber() {
+            return mNumber;
+        }
+
         public Intent getIntent(Context context) {
             switch (mCallType) {
                 case CallLog.Calls.VOICEMAIL_TYPE:
diff --git a/tests/src/com/android/contacts/activities/CallLogActivityTests.java b/tests/src/com/android/contacts/activities/CallLogActivityTests.java
index ef029fc..e29540b 100644
--- a/tests/src/com/android/contacts/activities/CallLogActivityTests.java
+++ b/tests/src/com/android/contacts/activities/CallLogActivityTests.java
@@ -285,8 +285,8 @@
             }
             mItem = (CallLogListItemViews) mList[i].getTag();
 
-            // callView tag is the phone number.
-            String number = (String) mItem.callView.getTag();
+            // callView tag contains the phone number wrapped in a NumberAndType instance.
+            String number = ((CallLogFragment.NumberAndType) mItem.callView.getTag()).getNumber();
 
             if (CallerInfo.PRIVATE_NUMBER.equals(number) ||
                 CallerInfo.UNKNOWN_NUMBER.equals(number)) {
