diff --git a/res/layout/call_log_phone_call_details.xml b/res/layout/call_log_phone_call_details.xml
index aebda9d..b46a8ed 100644
--- a/res/layout/call_log_phone_call_details.xml
+++ b/res/layout/call_log_phone_call_details.xml
@@ -27,6 +27,7 @@
             android:id="@+id/call_type_icons"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginRight="?attr/call_log_date_margin"
         />
         <TextView
             android:id="@+id/call_type_name"
@@ -34,12 +35,13 @@
             android:layout_height="wrap_content"
             android:textAppearance="?android:attr/textAppearanceSmall"
             android:textColor="?attr/call_log_primary_text_color"
+            android:layout_marginRight="?attr/call_log_date_margin"
         />
         <TextView
             android:id="@+id/call_type_separator"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginLeft="?attr/call_log_date_margin"
+            android:layout_marginRight="?attr/call_log_date_margin"
             android:textAppearance="?android:attr/textAppearanceSmall"
             android:textColor="?attr/call_log_primary_text_color"
             android:text="@string/call_log_type_date_separator"
@@ -51,7 +53,6 @@
             android:textAppearance="?android:attr/textAppearanceSmall"
             android:textColor="?attr/call_log_primary_text_color"
             android:layout_toRightOf="@id/call_type"
-            android:layout_marginLeft="?attr/call_log_date_margin"
             android:layout_alignParentBottom="true"
         />
     </LinearLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 547f3e7..52f8394 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1641,4 +1641,7 @@
    <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
    server directly to listen to the voicemails. [CHAR LIMIT=20] -->
     <string name="voicemail_status_action_call_server">Call voicemail</string>
+
+    <!-- The counter for calls in a group in the call log [CHAR LIMIT=5] -->
+    <string name="call_log_item_count">(%1$d)</string>
 </resources>
diff --git a/src/com/android/contacts/PhoneCallDetailsHelper.java b/src/com/android/contacts/PhoneCallDetailsHelper.java
index e115d21..8369a0c 100644
--- a/src/com/android/contacts/PhoneCallDetailsHelper.java
+++ b/src/com/android/contacts/PhoneCallDetailsHelper.java
@@ -35,6 +35,9 @@
  * Helper class to fill in the views in {@link PhoneCallDetailsViews}.
  */
 public class PhoneCallDetailsHelper {
+    /** The maximum number of icons will be shown to represent the call types in a group. */
+    private static final int MAX_CALL_TYPE_ICONS = 3;
+
     private final Context mContext;
     private final Resources mResources;
     /** The injected current time in milliseconds since the epoch. Used only by tests. */
@@ -64,14 +67,22 @@
         if (useIcons) {
             views.callTypeIcons.removeAllViews();
             int count = details.callTypes.length;
-            for (int callType : details.callTypes) {
+            for (int index = 0; index < count && index < MAX_CALL_TYPE_ICONS; ++index) {
+                int callType = details.callTypes[index];
                 ImageView callTypeImage = new ImageView(mContext);
                 callTypeImage.setImageDrawable(mCallTypeHelper.getCallTypeDrawable(callType));
                 views.callTypeIcons.addView(callTypeImage);
             }
             views.callTypeIcons.setVisibility(View.VISIBLE);
-            views.callTypeText.setVisibility(View.GONE);
-            views.callTypeSeparator.setVisibility(View.GONE);
+            if (count > MAX_CALL_TYPE_ICONS) {
+                views.callTypeText.setVisibility(View.VISIBLE);
+                views.callTypeSeparator.setVisibility(View.VISIBLE);
+                views.callTypeText.setText(
+                        mResources.getString(R.string.call_log_item_count, count));
+            } else {
+                views.callTypeText.setVisibility(View.GONE);
+                views.callTypeSeparator.setVisibility(View.GONE);
+            }
         } else {
             String callTypeName;
             // Use the name of the first call type.
