diff --git a/res/layout-finger/contacts_list_item_photo.xml b/res/layout-finger/contacts_list_item_photo.xml
index 527463f..b15c586 100644
--- a/res/layout-finger/contacts_list_item_photo.xml
+++ b/res/layout-finger/contacts_list_item_photo.xml
@@ -75,18 +75,18 @@
             </LinearLayout>
         </LinearLayout>
 
-        <android.widget.FasttrackBadgeWidget android:id="@+id/photo"
+        <android.widget.QuickContactBadge android:id="@+id/photo"
             android:layout_alignParentLeft="true"
             android:layout_centerVertical="true"
             android:layout_marginRight="8dip"
-            style="@*android:style/Widget.FasttrackBadgeWidget.WindowMedium" />
+            style="@*android:style/Widget.QuickContactBadge.WindowMedium" />
         />
 
-        <ImageView android:id="@+id/noFastTrackphoto"
+        <ImageView android:id="@+id/noQuickContactPhoto"
             android:layout_alignParentLeft="true"
             android:layout_centerVertical="true"
             android:layout_marginRight="8dip"
-            style="@*android:style/Widget.FasttrackBadgeWidget.WindowMedium"
+            style="@*android:style/Widget.QuickContactBadge.WindowMedium"
             android:background="@null" />
         />
 
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 833e74c..c228178 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -93,7 +93,7 @@
 import android.widget.AdapterView;
 import android.widget.AlphabetIndexer;
 import android.widget.ArrayAdapter;
-import android.widget.FasttrackBadgeWidget;
+import android.widget.QuickContactBadge;
 import android.widget.Filter;
 import android.widget.ImageView;
 import android.widget.ListView;
@@ -553,7 +553,6 @@
             return;
         }
 
-
         if (JOIN_AGGREGATE.equals(action)) {
             mMode = MODE_JOIN_CONTACT;
             mQueryAggregateId = intent.getLongExtra(EXTRA_AGGREGATE_ID, -1);
@@ -1918,7 +1917,7 @@
         public TextView dataView;
         public CharArrayBuffer dataBuffer = new CharArrayBuffer(128);
         public ImageView presenceView;
-        public FasttrackBadgeWidget photoView;
+        public QuickContactBadge photoView;
         public ImageView nonFastTrackPhotoView;
     }
 
@@ -1930,7 +1929,7 @@
             this.position = position;
             this.photoId = photoId;
         }
-        public FasttrackBadgeWidget photoView;
+        public QuickContactBadge photoView;
     }
 
     private final class ContactItemListAdapter extends ResourceCursorAdapter
@@ -2221,8 +2220,8 @@
             cache.labelView = (TextView) view.findViewById(R.id.label);
             cache.dataView = (TextView) view.findViewById(R.id.data);
             cache.presenceView = (ImageView) view.findViewById(R.id.presence);
-            cache.photoView = (FasttrackBadgeWidget) view.findViewById(R.id.photo);
-            cache.nonFastTrackPhotoView = (ImageView) view.findViewById(R.id.noFastTrackphoto);
+            cache.photoView = (QuickContactBadge) view.findViewById(R.id.photo);
+            cache.nonFastTrackPhotoView = (ImageView) view.findViewById(R.id.noQuickContactPhoto);
             view.setTag(cache);
 
             return view;
