diff --git a/res/values/strings.xml b/res/values/strings.xml
index c4c149a..747cd7d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -256,6 +256,9 @@
     <!-- The group type that displays only contacts with phone numbers -->
     <string name="groupNameWithPhones">Contacts with phone numbers</string>
     
+    <!-- The group type that displays "Starred in Android" contacts -->
+    <string name="starredInAndroid">Starred in Android</string>
+    
     <!-- Toast displayed when a contact is created -->
     <string name="contactCreatedToast">Contact created.</string>
     
diff --git a/src/com/android/contacts/ContactsGroupSyncSelector.java b/src/com/android/contacts/ContactsGroupSyncSelector.java
index 30aec94..e1fbdf1 100644
--- a/src/com/android/contacts/ContactsGroupSyncSelector.java
+++ b/src/com/android/contacts/ContactsGroupSyncSelector.java
@@ -207,6 +207,11 @@
                     String systemId = cursor.isNull(COLUMN_INDEX_SYSTEM_ID) ?
                             null : cursor.getString(COLUMN_INDEX_SYSTEM_ID);
                     if (systemId == null || !Groups.GROUP_MY_CONTACTS.equals(systemId)) {
+                        // Localize the "Starred in Android" string which we get from the server
+                        // side.
+                        if (Groups.GROUP_ANDROID_STARRED.equals(name)) {
+                            name = getString(R.string.starredInAndroid);
+                        }
                         items.add(name);
                         checked.add(cursor.getInt(COLUMN_INDEX_SHOULD_SYNC) != 0);
                         groupIds.add(cursor.getLong(COLUMN_INDEX_ID));
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 0aff2b1..d730183 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -1343,6 +1343,11 @@
                 if (cursor.isNull(GROUPS_COLUMN_INDEX_SYSTEM_ID)
                         && !Groups.GROUP_MY_CONTACTS.equals(systemId)) {
                     // All groups that aren't My Contacts, since that one is localized on the phone
+
+                    // Localize the "Starred in Android" string which we get from the server side.
+                    if (Groups.GROUP_ANDROID_STARRED.equals(name)) {
+                        name = getString(R.string.starredInAndroid);
+                    }
                     groups.add(name);
                     if (name.equals(mDisplayInfo)) {
                         currentIndex = groups.size() - 1;
@@ -1780,5 +1785,3 @@
         }
     }
 }
-
-
