diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 67a55c0..d63da99 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -261,11 +261,11 @@
             </intent-filter>
         </activity>
 
-        <!-- Used to show FastTrack window over a translucent activity, which is a
+        <!-- Used to show QuickContact window over a translucent activity, which is a
              temporary hack until we add better framework support. -->
         <activity
-            android:name=".ui.FastTrackActivity"
-            android:theme="@style/FullyTranslucent.FastTrack">
+            android:name=".ui.QuickContactActivity"
+            android:theme="@style/FullyTranslucent.QuickContact">
 
             <intent-filter>
                 <action android:name="com.android.contacts.action.FAST_TRACK" />
diff --git a/res/anim/fasttrack.xml b/res/anim/quickcontact.xml
similarity index 100%
rename from res/anim/fasttrack.xml
rename to res/anim/quickcontact.xml
diff --git a/res/anim/fasttrack_above_enter.xml b/res/anim/quickcontact_above_enter.xml
similarity index 100%
rename from res/anim/fasttrack_above_enter.xml
rename to res/anim/quickcontact_above_enter.xml
diff --git a/res/anim/fasttrack_above_exit.xml b/res/anim/quickcontact_above_exit.xml
similarity index 100%
rename from res/anim/fasttrack_above_exit.xml
rename to res/anim/quickcontact_above_exit.xml
diff --git a/res/anim/fasttrack_below_enter.xml b/res/anim/quickcontact_below_enter.xml
similarity index 100%
rename from res/anim/fasttrack_below_enter.xml
rename to res/anim/quickcontact_below_enter.xml
diff --git a/res/anim/fasttrack_below_exit.xml b/res/anim/quickcontact_below_exit.xml
similarity index 100%
rename from res/anim/fasttrack_below_exit.xml
rename to res/anim/quickcontact_below_exit.xml
diff --git a/res/drawable-finger/fasttrack_disambig_checkbox.xml b/res/drawable-finger/quickcontact_disambig_checkbox.xml
similarity index 84%
rename from res/drawable-finger/fasttrack_disambig_checkbox.xml
rename to res/drawable-finger/quickcontact_disambig_checkbox.xml
index 0bd2030..4add69c 100644
--- a/res/drawable-finger/fasttrack_disambig_checkbox.xml
+++ b/res/drawable-finger/quickcontact_disambig_checkbox.xml
@@ -18,8 +18,8 @@
     android:dither="true">
 
     <item android:state_checked="true"
-        android:drawable="@drawable/fasttrack_disambig_checkbox_on" />
+        android:drawable="@drawable/quickcontact_disambig_checkbox_on" />
     <item
-        android:drawable="@drawable/fasttrack_disambig_checkbox_off" />
+        android:drawable="@drawable/quickcontact_disambig_checkbox_off" />
 
 </selector>
diff --git a/res/drawable-finger/fasttrack_slider_btn.xml b/res/drawable-finger/quickcontact_slider_btn.xml
similarity index 72%
rename from res/drawable-finger/fasttrack_slider_btn.xml
rename to res/drawable-finger/quickcontact_slider_btn.xml
index b89a543..a1be8f4 100644
--- a/res/drawable-finger/fasttrack_slider_btn.xml
+++ b/res/drawable-finger/quickcontact_slider_btn.xml
@@ -18,14 +18,14 @@
     android:dither="true">
 
     <item android:state_checked="true"
-        android:drawable="@drawable/fasttrack_slider_btn_on" />
+        android:drawable="@drawable/quickcontact_slider_btn_on" />
     <item android:state_window_focused="false"
-        android:drawable="@drawable/fasttrack_slider_btn_normal" />
+        android:drawable="@drawable/quickcontact_slider_btn_normal" />
     <item android:state_pressed="true"
-        android:drawable="@drawable/fasttrack_slider_btn_pressed" />
+        android:drawable="@drawable/quickcontact_slider_btn_pressed" />
     <item android:state_focused="true"
-        android:drawable="@drawable/fasttrack_slider_btn_selected" />
+        android:drawable="@drawable/quickcontact_slider_btn_selected" />
     <item
-        android:drawable="@drawable/fasttrack_slider_btn_normal" />
+        android:drawable="@drawable/quickcontact_slider_btn_normal" />
 
 </selector>
diff --git a/res/drawable-hdpi-finger/fasttrack_arrow_down.png b/res/drawable-hdpi-finger/quickcontact_arrow_down.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_arrow_down.png
rename to res/drawable-hdpi-finger/quickcontact_arrow_down.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_arrow_up.png b/res/drawable-hdpi-finger/quickcontact_arrow_up.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_arrow_up.png
rename to res/drawable-hdpi-finger/quickcontact_arrow_up.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_bottom_frame.9.png b/res/drawable-hdpi-finger/quickcontact_bottom_frame.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_bottom_frame.9.png
rename to res/drawable-hdpi-finger/quickcontact_bottom_frame.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_disambig_bottom_bg.9.png b/res/drawable-hdpi-finger/quickcontact_disambig_bottom_bg.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_disambig_bottom_bg.9.png
rename to res/drawable-hdpi-finger/quickcontact_disambig_bottom_bg.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_disambig_checkbox_off.png b/res/drawable-hdpi-finger/quickcontact_disambig_checkbox_off.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_disambig_checkbox_off.png
rename to res/drawable-hdpi-finger/quickcontact_disambig_checkbox_off.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_disambig_checkbox_on.png b/res/drawable-hdpi-finger/quickcontact_disambig_checkbox_on.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_disambig_checkbox_on.png
rename to res/drawable-hdpi-finger/quickcontact_disambig_checkbox_on.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_disambig_divider.9.png b/res/drawable-hdpi-finger/quickcontact_disambig_divider.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_disambig_divider.9.png
rename to res/drawable-hdpi-finger/quickcontact_disambig_divider.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_drop_shadow.9.png b/res/drawable-hdpi-finger/quickcontact_drop_shadow.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_drop_shadow.9.png
rename to res/drawable-hdpi-finger/quickcontact_drop_shadow.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_frame_divider_med.png b/res/drawable-hdpi-finger/quickcontact_frame_divider_med.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_frame_divider_med.png
rename to res/drawable-hdpi-finger/quickcontact_frame_divider_med.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_background.png b/res/drawable-hdpi-finger/quickcontact_slider_background.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_background.png
rename to res/drawable-hdpi-finger/quickcontact_slider_background.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_btn_normal.9.png b/res/drawable-hdpi-finger/quickcontact_slider_btn_normal.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_btn_normal.9.png
rename to res/drawable-hdpi-finger/quickcontact_slider_btn_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_btn_on.9.png b/res/drawable-hdpi-finger/quickcontact_slider_btn_on.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_btn_on.9.png
rename to res/drawable-hdpi-finger/quickcontact_slider_btn_on.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_btn_pressed.9.png b/res/drawable-hdpi-finger/quickcontact_slider_btn_pressed.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_btn_pressed.9.png
rename to res/drawable-hdpi-finger/quickcontact_slider_btn_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_btn_selected.9.png b/res/drawable-hdpi-finger/quickcontact_slider_btn_selected.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_btn_selected.9.png
rename to res/drawable-hdpi-finger/quickcontact_slider_btn_selected.9.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_grip_left.png b/res/drawable-hdpi-finger/quickcontact_slider_grip_left.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_grip_left.png
rename to res/drawable-hdpi-finger/quickcontact_slider_grip_left.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_grip_right.png b/res/drawable-hdpi-finger/quickcontact_slider_grip_right.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_grip_right.png
rename to res/drawable-hdpi-finger/quickcontact_slider_grip_right.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_presence_active.png b/res/drawable-hdpi-finger/quickcontact_slider_presence_active.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_presence_active.png
rename to res/drawable-hdpi-finger/quickcontact_slider_presence_active.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_presence_away.png b/res/drawable-hdpi-finger/quickcontact_slider_presence_away.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_presence_away.png
rename to res/drawable-hdpi-finger/quickcontact_slider_presence_away.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_presence_busy.png b/res/drawable-hdpi-finger/quickcontact_slider_presence_busy.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_presence_busy.png
rename to res/drawable-hdpi-finger/quickcontact_slider_presence_busy.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_slider_presence_inactive.png b/res/drawable-hdpi-finger/quickcontact_slider_presence_inactive.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_slider_presence_inactive.png
rename to res/drawable-hdpi-finger/quickcontact_slider_presence_inactive.png
Binary files differ
diff --git a/res/drawable-hdpi-finger/fasttrack_top_frame.9.png b/res/drawable-hdpi-finger/quickcontact_top_frame.9.png
similarity index 100%
rename from res/drawable-hdpi-finger/fasttrack_top_frame.9.png
rename to res/drawable-hdpi-finger/quickcontact_top_frame.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_arrow_down.png b/res/drawable-mdpi-finger/quickcontact_arrow_down.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_arrow_down.png
rename to res/drawable-mdpi-finger/quickcontact_arrow_down.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_arrow_up.png b/res/drawable-mdpi-finger/quickcontact_arrow_up.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_arrow_up.png
rename to res/drawable-mdpi-finger/quickcontact_arrow_up.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_bottom_frame.9.png b/res/drawable-mdpi-finger/quickcontact_bottom_frame.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_bottom_frame.9.png
rename to res/drawable-mdpi-finger/quickcontact_bottom_frame.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_disambig_bottom_bg.9.png b/res/drawable-mdpi-finger/quickcontact_disambig_bottom_bg.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_disambig_bottom_bg.9.png
rename to res/drawable-mdpi-finger/quickcontact_disambig_bottom_bg.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_disambig_checkbox_off.png b/res/drawable-mdpi-finger/quickcontact_disambig_checkbox_off.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_disambig_checkbox_off.png
rename to res/drawable-mdpi-finger/quickcontact_disambig_checkbox_off.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_disambig_checkbox_on.png b/res/drawable-mdpi-finger/quickcontact_disambig_checkbox_on.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_disambig_checkbox_on.png
rename to res/drawable-mdpi-finger/quickcontact_disambig_checkbox_on.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_disambig_divider.9.png b/res/drawable-mdpi-finger/quickcontact_disambig_divider.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_disambig_divider.9.png
rename to res/drawable-mdpi-finger/quickcontact_disambig_divider.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_drop_shadow.9.png b/res/drawable-mdpi-finger/quickcontact_drop_shadow.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_drop_shadow.9.png
rename to res/drawable-mdpi-finger/quickcontact_drop_shadow.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_frame_divider_med.png b/res/drawable-mdpi-finger/quickcontact_frame_divider_med.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_frame_divider_med.png
rename to res/drawable-mdpi-finger/quickcontact_frame_divider_med.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_background.png b/res/drawable-mdpi-finger/quickcontact_slider_background.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_background.png
rename to res/drawable-mdpi-finger/quickcontact_slider_background.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_btn_normal.9.png b/res/drawable-mdpi-finger/quickcontact_slider_btn_normal.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_btn_normal.9.png
rename to res/drawable-mdpi-finger/quickcontact_slider_btn_normal.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_btn_on.9.png b/res/drawable-mdpi-finger/quickcontact_slider_btn_on.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_btn_on.9.png
rename to res/drawable-mdpi-finger/quickcontact_slider_btn_on.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_btn_pressed.9.png b/res/drawable-mdpi-finger/quickcontact_slider_btn_pressed.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_btn_pressed.9.png
rename to res/drawable-mdpi-finger/quickcontact_slider_btn_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_btn_selected.9.png b/res/drawable-mdpi-finger/quickcontact_slider_btn_selected.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_btn_selected.9.png
rename to res/drawable-mdpi-finger/quickcontact_slider_btn_selected.9.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_grip_left.png b/res/drawable-mdpi-finger/quickcontact_slider_grip_left.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_grip_left.png
rename to res/drawable-mdpi-finger/quickcontact_slider_grip_left.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_grip_right.png b/res/drawable-mdpi-finger/quickcontact_slider_grip_right.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_grip_right.png
rename to res/drawable-mdpi-finger/quickcontact_slider_grip_right.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_presence_active.png b/res/drawable-mdpi-finger/quickcontact_slider_presence_active.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_presence_active.png
rename to res/drawable-mdpi-finger/quickcontact_slider_presence_active.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_presence_away.png b/res/drawable-mdpi-finger/quickcontact_slider_presence_away.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_presence_away.png
rename to res/drawable-mdpi-finger/quickcontact_slider_presence_away.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_presence_busy.png b/res/drawable-mdpi-finger/quickcontact_slider_presence_busy.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_presence_busy.png
rename to res/drawable-mdpi-finger/quickcontact_slider_presence_busy.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_slider_presence_inactive.png b/res/drawable-mdpi-finger/quickcontact_slider_presence_inactive.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_slider_presence_inactive.png
rename to res/drawable-mdpi-finger/quickcontact_slider_presence_inactive.png
Binary files differ
diff --git a/res/drawable-mdpi-finger/fasttrack_top_frame.9.png b/res/drawable-mdpi-finger/quickcontact_top_frame.9.png
similarity index 100%
rename from res/drawable-mdpi-finger/fasttrack_top_frame.9.png
rename to res/drawable-mdpi-finger/quickcontact_top_frame.9.png
Binary files differ
diff --git a/res/drawable/fasttrack.9.png b/res/drawable/quickcontact.9.png
similarity index 100%
rename from res/drawable/fasttrack.9.png
rename to res/drawable/quickcontact.9.png
Binary files differ
diff --git a/res/layout-finger/contacts_list_item.xml b/res/layout-finger/contacts_list_item.xml
index 0e7852e..775e163 100644
--- a/res/layout-finger/contacts_list_item.xml
+++ b/res/layout-finger/contacts_list_item.xml
@@ -58,7 +58,9 @@
                 <View android:id="@+id/divider"
                     android:layout_width="1px"
                     android:layout_height="fill_parent"
-                    android:background="@*android:drawable/divider_vertical_dark_opaque"
+                    android:layout_marginTop="5dip"
+                    android:layout_marginBottom="5dip"
+                    android:background="@drawable/divider_vertical_dark"
                 />
 
                 <com.android.contacts.ui.widget.DontPressWithParentImageView android:id="@+id/call_button"
diff --git a/res/layout-finger/contacts_list_item_photo.xml b/res/layout-finger/contacts_list_item_photo.xml
index b15c586..f387502 100644
--- a/res/layout-finger/contacts_list_item_photo.xml
+++ b/res/layout-finger/contacts_list_item_photo.xml
@@ -30,7 +30,7 @@
     <RelativeLayout
         android:layout_width="fill_parent"
         android:layout_height="?android:attr/listPreferredItemHeight"
-        android:paddingLeft="5dip"
+        android:paddingLeft="4dip"
     >
 
         <LinearLayout android:id="@+id/right_side"
@@ -58,7 +58,9 @@
                 <View android:id="@+id/divider"
                     android:layout_width="1px"
                     android:layout_height="fill_parent"
-                    android:background="@*android:drawable/divider_vertical_dark_opaque"
+                    android:layout_marginTop="5dip"
+                    android:layout_marginBottom="5dip"
+                    android:background="@drawable/divider_vertical_dark"
                 />
 
                 <com.android.contacts.ui.widget.DontPressWithParentImageView android:id="@+id/call_button"
diff --git a/res/layout-finger/list_item_text_icons.xml b/res/layout-finger/list_item_text_icons.xml
index f87aab8..552d28a 100644
--- a/res/layout-finger/list_item_text_icons.xml
+++ b/res/layout-finger/list_item_text_icons.xml
@@ -43,28 +43,28 @@
             android:textAppearance="?android:attr/textAppearanceLarge"
         />
 
-		<LinearLayout
-		    android:layout_width="wrap_content"
-		    android:layout_height="wrap_content"
-		    android:orientation="horizontal"
-		>
-		    
-	        <TextView android:id="@android:id/text2"
-	            android:layout_width="wrap_content"
-	            android:layout_height="wrap_content"
-	            android:layout_gravity="center_vertical"
-	            android:textAppearance="?android:attr/textAppearanceSmall"
-	        />
-	
-	        <ImageView android:id="@+id/primary_icon"
-	            android:layout_width="wrap_content"
-	            android:layout_height="wrap_content"
-	            android:layout_gravity="center_vertical"
-	            android:paddingLeft="3dip"
-	            android:src="@drawable/ic_default_number"
-	        />
-    	</LinearLayout>
-    	
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+        >
+            
+            <TextView android:id="@android:id/text2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+            />
+    
+            <ImageView android:id="@+id/primary_icon"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:paddingLeft="3dip"
+                android:src="@drawable/ic_default_number"
+            />
+        </LinearLayout>
+        
     </LinearLayout>
 
     <ImageView android:id="@+id/presence_icon"
@@ -85,8 +85,10 @@
     />
     
     <View android:id="@+id/divider"
-        android:layout_width="1dip"
+        android:layout_width="1px"
         android:layout_height="fill_parent"
+        android:layout_marginTop="5dip"
+        android:layout_marginBottom="5dip"
         android:background="@drawable/divider_vertical_dark"
     />
 
diff --git a/res/layout-finger/fasttrack.xml b/res/layout-finger/quickcontact.xml
similarity index 79%
rename from res/layout-finger/fasttrack.xml
rename to res/layout-finger/quickcontact.xml
index 46e5d63..33007f7 100644
--- a/res/layout-finger/fasttrack.xml
+++ b/res/layout-finger/quickcontact.xml
@@ -18,7 +18,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
-    android:background="@drawable/fasttrack_drop_shadow">
+    android:background="@drawable/quickcontact_drop_shadow">
 
     <FrameLayout
         android:id="@+id/header"
@@ -31,21 +31,21 @@
             android:inflatedId="@+id/header_small"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
-            android:layout="@layout/fasttrack_header_small" />
+            android:layout="@layout/quickcontact_header_small" />
 
         <ViewStub
             android:id="@+id/header_medium"
             android:inflatedId="@+id/header_medium"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
-            android:layout="@layout/fasttrack_header_med" />
+            android:layout="@layout/quickcontact_header_med" />
 
         <ViewStub
             android:id="@+id/header_large"
             android:inflatedId="@+id/header_large"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
-            android:layout="@layout/fasttrack_header_large" />
+            android:layout="@layout/quickcontact_header_large" />
 
     </FrameLayout>
 
@@ -55,11 +55,11 @@
         android:layout_height="wrap_content"
         android:layout_below="@id/header"
         android:fadingEdgeLength="0dip"
-        android:background="@drawable/fasttrack_slider_background"
+        android:background="@drawable/quickcontact_slider_background"
         android:scrollbars="none">
 
         <LinearLayout
-            android:id="@+id/fasttrack"
+            android:id="@+id/quickcontact"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:paddingTop="4dip"
@@ -69,12 +69,12 @@
             <ImageView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:src="@drawable/fasttrack_slider_grip_left" />
+                android:src="@drawable/quickcontact_slider_grip_left" />
 
             <ImageView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:src="@drawable/fasttrack_slider_grip_right" />
+                android:src="@drawable/quickcontact_slider_grip_right" />
 
         </LinearLayout>
 
@@ -85,14 +85,14 @@
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/scroll"
-        android:background="@drawable/fasttrack_bottom_frame" />
+        android:background="@drawable/quickcontact_bottom_frame" />
 
     <LinearLayout
         android:id="@+id/footer_disambig"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/scroll"
-        android:background="@drawable/fasttrack_disambig_bottom_bg"
+        android:background="@drawable/quickcontact_disambig_bottom_bg"
         android:orientation="vertical"
         android:visibility="gone">
 
@@ -101,8 +101,8 @@
             android:layout_width="fill_parent"
             android:layout_height="0dip"
 	    android:layout_weight="1"
-            android:background="@color/fasttrack_disambig"
-            android:divider="@drawable/fasttrack_disambig_divider"
+            android:background="@color/quickcontact_disambig"
+            android:divider="@drawable/quickcontact_disambig_divider"
             android:cacheColorHint="@null" />
 
         <CheckBox
@@ -114,9 +114,9 @@
             android:minHeight="60dip"
             android:textColor="#f000"
             android:textStyle="bold"
-            android:text="@string/fasttrack_remember_choice"
+            android:text="@string/quickcontact_remember_choice"
             android:textAppearance="?android:attr/textAppearanceSmallInverse"
-            android:button="@drawable/fasttrack_disambig_checkbox" />
+            android:button="@drawable/quickcontact_disambig_checkbox" />
 
     </LinearLayout>
 
@@ -124,7 +124,7 @@
         android:id="@+id/arrow_up"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:src="@drawable/fasttrack_arrow_up" />
+        android:src="@drawable/quickcontact_arrow_up" />
 
     <ImageView
         android:id="@+id/arrow_down"
@@ -132,6 +132,6 @@
         android:layout_height="wrap_content"
         android:layout_marginTop="-1dip"
         android:layout_below="@id/footer"
-        android:src="@drawable/fasttrack_arrow_down" />
+        android:src="@drawable/quickcontact_arrow_down" />
 
 </RelativeLayout>
diff --git a/res/layout-finger/fasttrack_header_large.xml b/res/layout-finger/quickcontact_header_large.xml
similarity index 94%
rename from res/layout-finger/fasttrack_header_large.xml
rename to res/layout-finger/quickcontact_header_large.xml
index f950349..c94f1ad 100644
--- a/res/layout-finger/fasttrack_header_large.xml
+++ b/res/layout-finger/quickcontact_header_large.xml
@@ -20,7 +20,7 @@
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:minHeight="87dip"
-    android:background="@drawable/fasttrack_top_frame"
+    android:background="@drawable/quickcontact_top_frame"
     android:gravity="center_vertical"
     android:orientation="horizontal">
 
@@ -57,7 +57,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginRight="15dip"
-        android:src="@drawable/fasttrack_slider_presence_active"
+        android:src="@drawable/quickcontact_slider_presence_active"
         android:scaleType="centerInside" />
 
 </LinearLayout>
diff --git a/res/layout-finger/fasttrack_header_med.xml b/res/layout-finger/quickcontact_header_med.xml
similarity index 93%
rename from res/layout-finger/fasttrack_header_med.xml
rename to res/layout-finger/quickcontact_header_med.xml
index 98e9233..3533502 100644
--- a/res/layout-finger/fasttrack_header_med.xml
+++ b/res/layout-finger/quickcontact_header_med.xml
@@ -20,7 +20,7 @@
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:minHeight="45dip"
-    android:background="@drawable/fasttrack_top_frame"
+    android:background="@drawable/quickcontact_top_frame"
     android:gravity="center_vertical"
     android:orientation="horizontal">
 
@@ -40,7 +40,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="1dip"
-        android:src="@drawable/fasttrack_frame_divider_med" />
+        android:src="@drawable/quickcontact_frame_divider_med" />
 
     <ImageView
         android:id="@+id/source"
diff --git a/res/layout-finger/fasttrack_header_small.xml b/res/layout-finger/quickcontact_header_small.xml
similarity index 93%
rename from res/layout-finger/fasttrack_header_small.xml
rename to res/layout-finger/quickcontact_header_small.xml
index feb49f2..3711dcc 100644
--- a/res/layout-finger/fasttrack_header_small.xml
+++ b/res/layout-finger/quickcontact_header_small.xml
@@ -19,5 +19,5 @@
     android:id="@+id/header_small"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
-    android:background="@drawable/fasttrack_top_frame"
+    android:background="@drawable/quickcontact_top_frame"
     android:orientation="horizontal" />
diff --git a/res/layout-finger/fasttrack_item.xml b/res/layout-finger/quickcontact_item.xml
similarity index 94%
rename from res/layout-finger/fasttrack_item.xml
rename to res/layout-finger/quickcontact_item.xml
index 58d85aa..819915d 100644
--- a/res/layout-finger/fasttrack_item.xml
+++ b/res/layout-finger/quickcontact_item.xml
@@ -25,4 +25,4 @@
     android:scaleType="centerInside"
     android:focusable="true"
     android:clickable="true"
-    android:background="@drawable/fasttrack_slider_btn" />
+    android:background="@drawable/quickcontact_slider_btn" />
diff --git a/res/layout-finger/fasttrack_resolve_item.xml b/res/layout-finger/quickcontact_resolve_item.xml
similarity index 100%
rename from res/layout-finger/fasttrack_resolve_item.xml
rename to res/layout-finger/quickcontact_resolve_item.xml
diff --git a/res/menu/edit.xml b/res/menu/edit.xml
index 3a24f27..658a567 100644
--- a/res/menu/edit.xml
+++ b/res/menu/edit.xml
@@ -47,4 +47,13 @@
         android:icon="@android:drawable/ic_menu_delete"
         android:title="@string/removePicture" />
 
+    <item
+        android:id="@+id/menu_split"
+        android:icon="@drawable/ic_menu_merge"
+        android:title="@string/menu_splitAggregate" />
+
+    <item
+        android:id="@+id/menu_join"
+        android:icon="@drawable/ic_menu_merge"
+        android:title="@string/menu_joinAggregate" />
 </menu>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2b3c3fc..79c7f19 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Aplikace potřebná k provedení této akce nebyla nalezena"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Zapamatovat tuto volbu"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Neznámé"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Aplikace potřebná k provedení této akce nebyla nalezena"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Zapamatovat tuto volbu"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Neznámé"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Účty"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 88d3563..1a3d060 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Der blev ikke fundet noget program til denne handling"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Husk dette valg"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Ukendte"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Der blev ikke fundet noget program til denne handling"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Husk dette valg"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Ukendte"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Konti"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index b45e33a..e13626a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Für diese Aktion wurde keine Anwendung gefunden."</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Diese Auswahl speichern"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Unbekannt"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Für diese Aktion wurde keine Anwendung gefunden."</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Diese Auswahl speichern"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Unbekannt"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Konten"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index ce6be87..71bb3bd 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Δεν υπάρχει εφαρμογή για τη διαχείριση αυτής της ενέργειας"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Διατήρηση αυτής της ρύθμισης"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Άγνωστος"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Δεν υπάρχει εφαρμογή για τη διαχείριση αυτής της ενέργειας"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Διατήρηση αυτής της ρύθμισης"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Άγνωστος"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Λογαριασμοί"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index d051af8..8372650 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"No se encontró aplicación para permitir esta acción"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Recuerda esta opción"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Desconocido"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"No se encontró aplicación para permitir esta acción"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Recuerda esta opción"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Desconocido"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Cuentas"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ad45fb6..3ea81a0 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"No se ha encontrado ninguna aplicación que pueda realizar esta acción."</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Recordar esta opción"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Desconocido"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"No se ha encontrado ninguna aplicación que pueda realizar esta acción."</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Recordar esta opción"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Desconocido"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Cuentas"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 26b026b..0aba70f 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Aucune application pour gérer cette action"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Mémoriser ce choix"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Inconnu"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Aucune application pour gérer cette action"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Mémoriser ce choix"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Inconnu"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Comptes"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 5797d61..9e28302 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Nessuna applicazione trovata in grado di gestire questa azione"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Memorizza questa scelta"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Sconosciuto"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Nessuna applicazione trovata in grado di gestire questa azione"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Memorizza questa scelta"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Sconosciuto"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Account"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 1e539dd..b6abc9a 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"この操作を行うアプリケーションが見つかりません"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"この選択を保存"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"不明"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"この操作を行うアプリケーションが見つかりません"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"この選択を保存"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"不明"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"アカウント"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index cd45ca9..f07aec0 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"이 작업을 처리하는 응용프로그램을 찾을 수 없습니다."</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"이 선택사항 저장"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"알 수 없음"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"이 작업을 처리하는 응용프로그램을 찾을 수 없습니다."</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"이 선택사항 저장"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"알 수 없음"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"계정"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 57d17c1..e04b8da 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Ingen programmer som kan utføre denne handlingen ble funnet"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Husk dette valget"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Ukjent"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Ingen programmer som kan utføre denne handlingen ble funnet"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Husk dette valget"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Ukjent"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Kontoer"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index d2ca5b3..e3a6ac8 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Er is geen toepassing gevonden om deze actie uit te voeren"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Deze keuze onthouden"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Onbekend"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Er is geen toepassing gevonden om deze actie uit te voeren"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Deze keuze onthouden"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Onbekend"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Accounts"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 02797d5..06523ca 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Nie znaleziono aplikacji do obsługi tej akcji"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Zapamiętaj ten wybór"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Nieznane"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Nie znaleziono aplikacji do obsługi tej akcji"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Zapamiętaj ten wybór"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Nieznane"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Konta"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5802679..3de0004 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Não foram encontradas aplicações para executar esta acção"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Memorizar esta escolha"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Desconhecido"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Não foram encontradas aplicações para executar esta acção"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Memorizar esta escolha"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Desconhecido"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Contas"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 86423f1..6438046 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Nenhum aplicativo foi encontrado para executar esta ação."</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Lembrar desta escolha"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Desconhecido"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Nenhum aplicativo foi encontrado para executar esta ação."</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Lembrar desta escolha"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Desconhecido"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Contas"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index aa5d2f8..76256f4 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Отсутствует приложение для обработки этого действия"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Запомнить выбранное"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Неизвестно"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Отсутствует приложение для обработки этого действия"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Запомнить выбранное"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Неизвестно"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Аккаунты"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 50d9f8d..728fbca 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Inget program som kan hantera åtgärden hittades"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Kom ihåg det här valet"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Okänd"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Inget program som kan hantera åtgärden hittades"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Kom ihåg det här valet"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Okänd"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Konton"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index c8ae19c..1df1655 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"Bu eylemi gerçekleştirecek bir uygulama bulunamadı"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"Bu tercihi anımsa"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"Bilinmiyor"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"Bu eylemi gerçekleştirecek bir uygulama bulunamadı"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"Bu tercihi anımsa"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"Bilinmiyor"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"Hesaplar"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 4ee3b92..cf30983 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"未找到可处理此操作的应用程序"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"记住此选择"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"未知"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"未找到可处理此操作的应用程序"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"记住此选择"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"未知"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"帐户"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index e0f04cf..df5a614 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -281,9 +281,9 @@
     <skip />
     <!-- no translation found for make_primary (5829291915305113983) -->
     <skip />
-    <string name="fasttrack_missing_app" msgid="1181287640680679441">"找不到可以處理這個動作的應用程式"</string>
-    <string name="fasttrack_remember_choice" msgid="2858356075887897116">"記住這個選擇"</string>
-    <string name="fasttrack_missing_name" msgid="7806083820928955853">"不明"</string>
+    <string name="quickcontact_missing_app" msgid="1181287640680679441">"找不到可以處理這個動作的應用程式"</string>
+    <string name="quickcontact_remember_choice" msgid="2858356075887897116">"記住這個選擇"</string>
+    <string name="quickcontact_missing_name" msgid="7806083820928955853">"不明"</string>
     <string name="menu_accounts" msgid="8499114602017077970">"帳戶"</string>
     <!-- no translation found for menu_import_export (3765725645491577190) -->
     <skip />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 12630c0..880c269 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -18,6 +18,6 @@
     <color name="textColorIconOverlay">#fff</color>
     <color name="textColorIconOverlayShadow">#000</color>
     <color name="sect_secondary">#4fff</color>
-    <color name="fasttrack_disambig">#f2f2f2</color>
-    <color name="fasttrack_disambig_divider">#afafaf</color>
+    <color name="quickcontact_disambig">#f2f2f2</color>
+    <color name="quickcontact_disambig_divider">#afafaf</color>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4361fd4..845c3dc 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -15,7 +15,7 @@
 -->
 
 <resources>
-    <dimen name="fasttrack_shadow">37dip</dimen>
+    <dimen name="quickcontact_shadow">37dip</dimen>
     <dimen name="edit_photo_size">76dip</dimen>
         
     <!-- The height of the ScrollingTabWidget -->
diff --git a/res/values/ids.xml b/res/values/ids.xml
index cf1d419..92b0eac 100644
--- a/res/values/ids.xml
+++ b/res/values/ids.xml
@@ -41,6 +41,12 @@
     <item type="id" name="dialog_io_exception" />
     <item type="id" name="dialog_error_with_message" />
 
+    <!-- For ContactsListActivity -->
+    <item type="id" name="dialog_delete_contact_confirmation" />
+    <item type="id" name="dialog_cannot_delete_readonly_contact" />
+    <item type="id" name="dialog_multiple_contact_delete_confirmation" />
+    <item type="id" name="dialog_readonly_contact_delete_confirmation" />
+
     <!-- For ExportVCard -->
     <item type="id" name="dialog_export_confirmation" />
     <item type="id" name="dialog_fail_to_export_with_reason" />
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4df8b7c..e26b42e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -165,7 +165,16 @@
     <!-- Confirmation dialog title after users selects to delete a contact. -->
     <string name="deleteConfirmation_title">Delete</string>
 
-    <!-- Confirmation dialog contents after users selects to delete a contact. -->
+    <!-- Warning dialog contents after users selects to delete a ReadOnly contact. -->
+    <string name="readOnlyContactWarning">You cannot delete contacts from read-only accounts.</string>
+
+    <!-- Warning dialog contents after users selects to delete a contact with ReadOnly and Writable sources. -->
+    <string name="readOnlyContactDeleteConfirmation">This contact contains information from multiple accounts. The information from read-only accounts will not be deleted.</string>
+
+    <!-- Warning dialog contents after users selects to delete a contact with multiple Writable sources. -->
+    <string name="multipleContactDeleteConfirmation">Deleting this contact will delete information from multiple accounts.</string>
+
+    <!-- Confirmation dialog contents after users selects to delete a Writable contact. -->
     <string name="deleteConfirmation">This contact will be deleted.</string>
 
     <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
@@ -909,15 +918,15 @@
 
     <!-- Shown as a toast when the user taps on a Fast-Track icon, and no application
          was found that could perform the selected action -->
-    <string name="fasttrack_missing_app">No application found to handle this action</string>
+    <string name="quickcontact_missing_app">No application found to handle this action</string>
 
     <!-- Shown as the checkbox label that, when checked, will store remember the
          selected choice and shortcut to it in the future.  For example, this would
          make a selected phone number the default. -->
-    <string name="fasttrack_remember_choice">Remember this choice</string>
+    <string name="quickcontact_remember_choice">Remember this choice</string>
 
     <!-- Shown as the header name for a person when the name is missing or unknown. -->
-    <string name="fasttrack_missing_name">Unknown</string>
+    <string name="quickcontact_missing_name">Unknown</string>
 
     <!-- The menu item to open the list of accounts -->
     <string name="menu_accounts">Accounts</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 05c0916..8c5ae35 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -52,15 +52,15 @@
         <item name="android:windowContentOverlay">@null</item>
     </style>
 
-    <style name="FullyTranslucent.FastTrack">
+    <style name="FullyTranslucent.QuickContact">
         <!-- This is a hack because we want to be able to animate away the
-             FastTrack window, and we close its containing activity at the
+             QuickContact window, and we close its containing activity at the
              same time.  So put in a dummy animation so this guy sticks around
              while the fast track window is animating. -->
         <item name="android:windowAnimationStyle">@style/DummyAnimation</item>
     </style>
 
-    <style name="FastTrack">
+    <style name="QuickContact">
         <item name="android:windowFrame">@null</item>
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowIsFloating">true</item>
@@ -71,14 +71,14 @@
         -->
     </style>
 
-    <style name="FastTrackAboveAnimation">
-        <item name="android:windowEnterAnimation">@anim/fasttrack_above_enter</item>
-        <item name="android:windowExitAnimation">@anim/fasttrack_above_exit</item>
+    <style name="QuickContactAboveAnimation">
+        <item name="android:windowEnterAnimation">@anim/quickcontact_above_enter</item>
+        <item name="android:windowExitAnimation">@anim/quickcontact_above_exit</item>
     </style>
 
-    <style name="FastTrackBelowAnimation">
-        <item name="android:windowEnterAnimation">@anim/fasttrack_below_enter</item>
-        <item name="android:windowExitAnimation">@anim/fasttrack_below_exit</item>
+    <style name="QuickContactBelowAnimation">
+        <item name="android:windowEnterAnimation">@anim/quickcontact_below_enter</item>
+        <item name="android:windowExitAnimation">@anim/quickcontact_below_exit</item>
     </style>
 
     <style name="DummyAnimation">
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index c7d06e2..5e1638f 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -102,8 +102,11 @@
 import android.widget.TextView;
 import android.widget.AbsListView.OnScrollListener;
 
+import com.android.contacts.model.ContactsSource;
+
 import java.lang.ref.SoftReference;
 import java.lang.ref.WeakReference;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -186,8 +189,8 @@
     static final int MODE_MASK_NO_DATA = 0x04000000;
     /** Mask for showing a call button in the list */
     static final int MODE_MASK_SHOW_CALL_BUTTON = 0x02000000;
-    /** Mask to disable fasttrack (images will show as normal images) */
-    static final int MODE_MASK_DISABLE_FASTTRACK = 0x01000000;
+    /** Mask to disable quickcontact (images will show as normal images) */
+    static final int MODE_MASK_DISABLE_QUIKCCONTACT = 0x01000000;
     /** Mask to show the total number of contacts at the top */
     static final int MODE_MASK_SHOW_NUMBER_OF_CONTACTS = 0x00800000;
 
@@ -205,16 +208,16 @@
     static final int MODE_STREQUENT = 35 | MODE_MASK_SHOW_PHOTOS | MODE_MASK_SHOW_CALL_BUTTON;
     /** Show all contacts and pick them when clicking */
     static final int MODE_PICK_CONTACT = 40 | MODE_MASK_PICKER | MODE_MASK_SHOW_PHOTOS
-            | MODE_MASK_DISABLE_FASTTRACK;
+            | MODE_MASK_DISABLE_QUIKCCONTACT;
     /** Show all contacts as well as the option to create a new one */
     static final int MODE_PICK_OR_CREATE_CONTACT = 42 | MODE_MASK_PICKER | MODE_MASK_CREATE_NEW
-            | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_FASTTRACK;
+            | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_QUIKCCONTACT;
     /** Show all people through the legacy provider and pick them when clicking */
     static final int MODE_LEGACY_PICK_PERSON = 43 | MODE_MASK_PICKER | MODE_MASK_SHOW_PHOTOS
-            | MODE_MASK_DISABLE_FASTTRACK;
+            | MODE_MASK_DISABLE_QUIKCCONTACT;
     /** Show all people through the legacy provider as well as the option to create a new one */
-    static final int MODE_LEGACY_PICK_OR_CREATE_PERSON = 44 | MODE_MASK_PICKER | MODE_MASK_CREATE_NEW
-            | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_FASTTRACK;
+    static final int MODE_LEGACY_PICK_OR_CREATE_PERSON = 44 | MODE_MASK_PICKER
+            | MODE_MASK_CREATE_NEW | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_QUIKCCONTACT;
     /** Show all contacts and pick them when clicking, and allow creating a new contact */
     static final int MODE_INSERT_OR_EDIT_CONTACT = 45 | MODE_MASK_PICKER | MODE_MASK_CREATE_NEW;
     /** Show all phone numbers and pick them when clicking */
@@ -236,7 +239,7 @@
 
     /** Show join suggestions followed by an A-Z list */
     static final int MODE_JOIN_CONTACT = 70 | MODE_MASK_PICKER | MODE_MASK_NO_PRESENCE
-            | MODE_MASK_NO_DATA | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_FASTTRACK;
+            | MODE_MASK_NO_DATA | MODE_MASK_SHOW_PHOTOS | MODE_MASK_DISABLE_QUIKCCONTACT;
 
     /** Maximum number of suggestions shown for joining aggregates */
     static final int MAX_SUGGESTIONS = 4;
@@ -306,6 +309,12 @@
         ContactMethods.DATA, //3
         People.DISPLAY_NAME, // 4
     };
+    static final String[] RAW_CONTACTS_PROJECTION = new String[] {
+        RawContacts._ID, //0
+        RawContacts.CONTACT_ID, //1
+        RawContacts.ACCOUNT_TYPE, //2
+    };
+
     static final int POSTAL_ID_COLUMN_INDEX = 0;
     static final int POSTAL_TYPE_COLUMN_INDEX = 1;
     static final int POSTAL_LABEL_COLUMN_INDEX = 2;
@@ -324,6 +333,7 @@
     private String mQuery;
     private boolean mJustCreated;
     private boolean mSyncEnabled;
+    private Uri mSelectedContactUri;
 
 //    private boolean mDisplayAll;
     private boolean mDisplayOnlyPhones;
@@ -332,6 +342,10 @@
 
     private long mQueryAggregateId;
 
+    private ArrayList<Long> mWritableRawContactIds = new ArrayList<Long>();
+    private int  mWritableSourcesCnt;
+    private int  mReadOnlySourcesCnt;
+
     /**
      * Used to keep track of the scroll state of the list.
      */
@@ -388,7 +402,15 @@
         }
 
         public void onClick(DialogInterface dialog, int which) {
-            getContentResolver().delete(mUri, null, null);
+	    if (mReadOnlySourcesCnt > 0) {
+	        for (long rawContactIdToDelete: mWritableRawContactIds) {
+		    final Uri rawContactUri = ContentUris.withAppendedId(RawContacts.CONTENT_URI,
+                            rawContactIdToDelete);
+                    getContentResolver().delete(rawContactUri, null, null);
+		}
+            } else {
+	        getContentResolver().delete(mUri, null, null);
+            }
         }
     }
 
@@ -854,11 +876,44 @@
             }
             case R.id.dialog_sdcard_not_found: {
                 AlertDialog.Builder builder = new AlertDialog.Builder(this)
-                .setTitle(R.string.no_sdcard_title)
-                .setIcon(android.R.drawable.ic_dialog_alert)
-                .setMessage(R.string.no_sdcard_message)
-                .setPositiveButton(android.R.string.ok, null);
+                        .setTitle(R.string.no_sdcard_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.no_sdcard_message)
+                        .setPositiveButton(android.R.string.ok, null);
+		break;
             }
+	    case R.id.dialog_delete_contact_confirmation: {
+                AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                        .setTitle(R.string.deleteConfirmation_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.deleteConfirmation)
+                        .setNegativeButton(android.R.string.cancel, null)
+                        .setPositiveButton(android.R.string.ok, new DeleteClickListener(mSelectedContactUri));
+                break;
+            }
+            case R.id.dialog_cannot_delete_readonly_contact: {
+                AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                        .setTitle(R.string.deleteConfirmation_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.readOnlyContactWarning)
+                        .setPositiveButton(android.R.string.ok, null);
+		break;
+            }
+            case R.id.dialog_readonly_contact_delete_confirmation: {
+                AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                        .setTitle(R.string.deleteConfirmation_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.readOnlyContactDeleteConfirmation)
+                        .setPositiveButton(android.R.string.ok, new DeleteClickListener(mSelectedContactUri));
+                }
+	    case R.id.dialog_multiple_contact_delete_confirmation: {
+                AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                        .setTitle(R.string.deleteConfirmation_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.multipleContactDeleteConfirmation)
+                        .setPositiveButton(android.R.string.ok, new DeleteClickListener(mSelectedContactUri));
+                }
+
         }
         return super.onCreateDialog(id);
     }
@@ -1061,8 +1116,8 @@
             }
 
             case MENU_ITEM_DELETE: {
-                final Uri selectedUri = getContactUri(info.position);
-                doContactDelete(selectedUri);
+                mSelectedContactUri = getContactUri(info.position);
+                doContactDelete();
                 return true;
             }
         }
@@ -1082,8 +1137,8 @@
             case KeyEvent.KEYCODE_DEL: {
                 final int position = getListView().getSelectedItemPosition();
                 if (position != ListView.INVALID_POSITION) {
-                    final Uri selectedUri = getContactUri(position);
-                    doContactDelete(selectedUri);
+                    mSelectedContactUri = getContactUri(position);
+                    doContactDelete();
                     return true;
                 }
                 break;
@@ -1096,14 +1151,41 @@
     /**
      * Prompt the user before deleting the given {@link Contacts} entry.
      */
-    protected void doContactDelete(Uri contactUri) {
-        new AlertDialog.Builder(ContactsListActivity.this)
-            .setTitle(R.string.deleteConfirmation_title)
-            .setIcon(android.R.drawable.ic_dialog_alert)
-            .setMessage(R.string.deleteConfirmation)
-            .setNegativeButton(android.R.string.cancel, null)
-            .setPositiveButton(android.R.string.ok, new DeleteClickListener(contactUri))
-            .show();
+    protected void doContactDelete() {
+        mReadOnlySourcesCnt = 0;
+	mWritableSourcesCnt = 0;
+        mWritableRawContactIds.clear();
+
+	if (mSelectedContactUri != null) {
+            Cursor c = getContentResolver().query(RawContacts.CONTENT_URI,
+	            RAW_CONTACTS_PROJECTION, RawContacts.CONTACT_ID + "="
+		    + ContentUris.parseId(mSelectedContactUri), null, null);
+            Sources sources = Sources.getInstance(ContactsListActivity.this);
+            if (c != null) {
+                while (c.moveToNext()) {
+                    final String accountType = c.getString(2);
+		    final long rawContactId = c.getLong(0);
+                    ContactsSource contactsSource = sources.getInflatedSource(accountType,
+                            ContactsSource.LEVEL_SUMMARY);
+                    if (contactsSource != null && contactsSource.readOnly) {
+                        mReadOnlySourcesCnt += 1;
+                    } else {
+                        mWritableSourcesCnt += 1;
+			mWritableRawContactIds.add(rawContactId);
+		    }
+                 }
+            }
+            c.close();
+	    if (mReadOnlySourcesCnt > 0 && mWritableSourcesCnt > 0) {
+	        showDialog(R.id.dialog_readonly_contact_delete_confirmation);
+	    } else if (mReadOnlySourcesCnt > 0 && mWritableSourcesCnt == 0) {
+	        showDialog(R.id.dialog_cannot_delete_readonly_contact);
+	    } else if (mReadOnlySourcesCnt == 0 && mWritableSourcesCnt > 1) {
+	        showDialog(R.id.dialog_multiple_contact_delete_confirmation);
+            } else {
+	        showDialog(R.id.dialog_delete_contact_confirmation);
+	    }
+	}
     }
 
     @Override
@@ -1918,7 +2000,7 @@
         public CharArrayBuffer dataBuffer = new CharArrayBuffer(128);
         public ImageView presenceView;
         public QuickContactBadge photoView;
-        public ImageView nonFastTrackPhotoView;
+        public ImageView nonQuickContactPhotoView;
     }
 
     final static class PhotoInfo {
@@ -2222,7 +2304,7 @@
             cache.dataView = (TextView) view.findViewById(R.id.data);
             cache.presenceView = (ImageView) view.findViewById(R.id.presence);
             cache.photoView = (QuickContactBadge) view.findViewById(R.id.photo);
-            cache.nonFastTrackPhotoView = (ImageView) view.findViewById(R.id.noQuickContactPhoto);
+            cache.nonQuickContactPhotoView = (ImageView) view.findViewById(R.id.noQuickContactPhoto);
             view.setTag(cache);
 
             return view;
@@ -2289,7 +2371,7 @@
 
             // Set the photo, if requested
             if (mDisplayPhotos) {
-                boolean useFastTrack = (mMode & MODE_MASK_DISABLE_FASTTRACK) == 0;
+                boolean useQuickContact = (mMode & MODE_MASK_DISABLE_QUIKCCONTACT) == 0;
 
                 long photoId = 0;
                 if (!cursor.isNull(SUMMARY_PHOTO_ID_COLUMN_INDEX)) {
@@ -2297,18 +2379,18 @@
                 }
 
                 ImageView viewToUse;
-                if (useFastTrack) {
+                if (useQuickContact) {
                     viewToUse = cache.photoView;
                     // Build soft lookup reference
                     final long contactId = cursor.getLong(SUMMARY_ID_COLUMN_INDEX);
                     final String lookupKey = cursor.getString(SUMMARY_LOOKUP_KEY);
                     cache.photoView.assignContactUri(Contacts.getLookupUri(contactId, lookupKey));
                     cache.photoView.setVisibility(View.VISIBLE);
-                    cache.nonFastTrackPhotoView.setVisibility(View.INVISIBLE);
+                    cache.nonQuickContactPhotoView.setVisibility(View.INVISIBLE);
                 } else {
-                    viewToUse = cache.nonFastTrackPhotoView;
+                    viewToUse = cache.nonQuickContactPhotoView;
                     cache.photoView.setVisibility(View.INVISIBLE);
-                    cache.nonFastTrackPhotoView.setVisibility(View.VISIBLE);
+                    cache.nonQuickContactPhotoView.setVisibility(View.VISIBLE);
                 }
 
 
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index bec871f..0e03cf3 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -99,6 +99,8 @@
     private static final boolean SHOW_SEPARATORS = false;
 
     private static final int DIALOG_CONFIRM_DELETE = 1;
+    private static final int DIALOG_CONFIRM_READONLY_DELETE = 2;
+    private static final int DIALOG_CONFIRM_MULTIPLE_DELETE = 3;
 
     private static final int REQUEST_JOIN_CONTACT = 1;
     private static final int REQUEST_EDIT_CONTACT = 2;
@@ -154,6 +156,9 @@
     private static final String SAVED_STATE_TABS_VISIBLE_KEY = "tabsVisibleKey";
 
     protected Long mSelectedRawContactId = null;
+    protected int mReadOnlySourcesCnt;
+    protected int mWritableSourcesCnt;
+    protected ArrayList<Long> mWritableRawContactIds = new ArrayList<Long>();
 
     private static final int TOKEN_QUERY = 0;
 
@@ -173,7 +178,15 @@
 
     public void onClick(DialogInterface dialog, int which) {
         closeCursor();
-        getContentResolver().delete(mLookupUri, null, null);
+	if (mReadOnlySourcesCnt > 0) {
+	    for (long rawContactIdToDelete: mWritableRawContactIds) {
+		final Uri rawContactUri = ContentUris.withAppendedId(RawContacts.CONTENT_URI,
+                        rawContactIdToDelete);
+                getContentResolver().delete(rawContactUri, null, null);
+            }
+        } else {
+	    getContentResolver().delete(mLookupUri, null, null);
+	}
         finish();
     }
 
@@ -297,6 +310,24 @@
                         .setPositiveButton(android.R.string.ok, this)
                         .setCancelable(false)
                         .create();
+            case DIALOG_CONFIRM_READONLY_DELETE:
+                return new AlertDialog.Builder(this)
+                        .setTitle(R.string.deleteConfirmation_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.readOnlyContactDeleteConfirmation)
+                        .setNegativeButton(android.R.string.cancel, null)
+                        .setPositiveButton(android.R.string.ok, this)
+                        .setCancelable(false)
+                        .create();
+            case DIALOG_CONFIRM_MULTIPLE_DELETE:
+                return new AlertDialog.Builder(this)
+                        .setTitle(R.string.deleteConfirmation_title)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.multipleContactDeleteConfirmation)
+                        .setNegativeButton(android.R.string.cancel, null)
+                        .setPositiveButton(android.R.string.ok, this)
+                        .setCancelable(false)
+                        .create();
         }
         return null;
     }
@@ -597,6 +628,10 @@
         final boolean hasRawContact = (mRawContactIds.size() > 0);
         menu.findItem(R.id.menu_edit).setEnabled(hasRawContact);
 
+        // Disable delete for readonly contact
+	if (mWritableSourcesCnt == 0) {
+            menu.findItem(R.id.menu_delete).setEnabled(false);
+        }
         return true;
     }
 
@@ -667,7 +702,13 @@
             }
             case R.id.menu_delete: {
                 // Get confirmation
-                showDialog(DIALOG_CONFIRM_DELETE);
+		if (mReadOnlySourcesCnt > 0 & mWritableSourcesCnt > 0) {
+                    showDialog(DIALOG_CONFIRM_READONLY_DELETE);
+		} else if (mWritableSourcesCnt > 1) {
+		    showDialog(DIALOG_CONFIRM_MULTIPLE_DELETE);
+		} else {
+		    showDialog(DIALOG_CONFIRM_DELETE);
+		}
                 return true;
             }
             case R.id.menu_join: {
@@ -857,7 +898,13 @@
             }
 
             case KeyEvent.KEYCODE_DEL: {
-                showDialog(DIALOG_CONFIRM_DELETE);
+		if (mReadOnlySourcesCnt > 0 & mWritableSourcesCnt > 0) {
+                    showDialog(DIALOG_CONFIRM_READONLY_DELETE);
+		} else if (mWritableSourcesCnt > 1) {
+		    showDialog(DIALOG_CONFIRM_MULTIPLE_DELETE);
+		} else {
+		    showDialog(DIALOG_CONFIRM_DELETE);
+		}
                 return true;
             }
         }
@@ -915,6 +962,9 @@
         }
 
         mRawContactIds.clear();
+        mReadOnlySourcesCnt = 0;
+	mWritableSourcesCnt = 0;
+        mWritableRawContactIds.clear();
 
         Sources sources = Sources.getInstance(this);
 
@@ -936,6 +986,12 @@
 
                 final ContactsSource source = sources.getInflatedSource(accountType,
                         ContactsSource.LEVEL_SUMMARY);
+	        if (source.readOnly) {
+		    mReadOnlySourcesCnt += 1;
+		} else {
+		    mWritableSourcesCnt += 1;
+                    mWritableRawContactIds.add(rawContactId);
+		}
                 final String accountName = entValues.getAsString(RawContacts.ACCOUNT_NAME);
                 mAccountName.setText(getString(R.string.account_name_format,
                         source.getDisplayLabel(this), accountName));
diff --git a/src/com/android/contacts/model/EntitySet.java b/src/com/android/contacts/model/EntitySet.java
index adc87ee..be2f70f 100644
--- a/src/com/android/contacts/model/EntitySet.java
+++ b/src/com/android/contacts/model/EntitySet.java
@@ -43,6 +43,8 @@
  * and applying another {@link EntitySet} over it.
  */
 public class EntitySet extends ArrayList<EntityDelta> implements Parcelable {
+    private boolean mSplitRawContacts;
+
     private EntitySet() {
     }
 
@@ -128,15 +130,22 @@
         }
 
         final int assertMark = diff.size();
+        int backRefs[] = new int[size()];
+
+        int rawContactIndex = 0;
 
         // Second pass builds actual operations
         for (EntityDelta delta : this) {
             final int firstBatch = diff.size();
+            backRefs[rawContactIndex++] = firstBatch;
             delta.buildDiff(diff);
 
             // Only create rules for inserts
             if (!delta.isContactInsert()) continue;
 
+            // If we are going to split all contacts, there is no point in first combining them
+            if (mSplitRawContacts) continue;
+
             if (rawContactId != -1) {
                 // Has existing contact, so bind to it strongly
                 final Builder builder = beginKeepTogether();
@@ -157,6 +166,10 @@
             }
         }
 
+        if (mSplitRawContacts) {
+            buildSplitContactDiff(diff, backRefs);
+        }
+
         // No real changes if only left with asserts
         if (diff.size() == assertMark) {
             diff.clear();
@@ -177,6 +190,47 @@
     }
 
     /**
+     * Builds {@link AggregationExceptions} to split all constituent raw contacts into
+     * separate contacts.
+     */
+    private void buildSplitContactDiff(final ArrayList<ContentProviderOperation> diff,
+            int[] backRefs) {
+        int count = size();
+        for (int i = 0; i < count; i++) {
+            for (int j = 0; j < count; j++) {
+                if (i != j) {
+                    buildSplitContactDiff(diff, i, j, backRefs);
+                }
+            }
+        }
+    }
+
+    /**
+     * Construct a {@link AggregationExceptions#TYPE_KEEP_SEPARATE}.
+     */
+    private void buildSplitContactDiff(ArrayList<ContentProviderOperation> diff, int index1,
+            int index2, int[] backRefs) {
+        Builder builder =
+                ContentProviderOperation.newUpdate(AggregationExceptions.CONTENT_URI);
+        builder.withValue(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_SEPARATE);
+
+        Long rawContactId1 = get(index1).getValues().getAsLong(RawContacts._ID);
+        if (rawContactId1 != null && rawContactId1 >= 0) {
+            builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId1);
+        } else {
+            builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID1, backRefs[index1]);
+        }
+
+        Long rawContactId2 = get(index2).getValues().getAsLong(RawContacts._ID);
+        if (rawContactId2 != null && rawContactId2 >= 0) {
+            builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, rawContactId2);
+        } else {
+            builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID2, backRefs[index2]);
+        }
+        diff.add(builder.build());
+    }
+
+    /**
      * Search all contained {@link EntityDelta} for the first one with an
      * existing {@link RawContacts#_ID} value. Usually used when creating
      * {@link AggregationExceptions} during an update.
@@ -249,6 +303,10 @@
         return randomEntry;
     }
 
+    public void splitRawContacts() {
+        mSplitRawContacts = true;
+    }
+
     /** {@inheritDoc} */
     public int describeContents() {
         // Nothing special about this parcel
diff --git a/src/com/android/contacts/ui/DisplayGroupsActivity.java b/src/com/android/contacts/ui/DisplayGroupsActivity.java
index 7bd7b9d..ce68dcb 100644
--- a/src/com/android/contacts/ui/DisplayGroupsActivity.java
+++ b/src/com/android/contacts/ui/DisplayGroupsActivity.java
@@ -299,7 +299,7 @@
             } else if (isUpdate()) {
                 // When has changes and "before" exists, then "update"
                 final Builder builder = ContentProviderOperation
-                        .newUpdate(mUngrouped ? Settings.CONTENT_URI : Groups.CONTENT_URI);
+                        .newUpdate(mUngrouped ? Settings.CONTENT_URI : addCallerIsSyncAdapterParameter(Groups.CONTENT_URI));
                 if (mUngrouped) {
                     builder.withSelection(Settings.ACCOUNT_NAME + "=? AND " + Settings.ACCOUNT_TYPE
                             + "=?", new String[] {
@@ -323,6 +323,12 @@
         }
     }
 
+    private static Uri addCallerIsSyncAdapterParameter(Uri uri) {
+        return uri.buildUpon()
+	        .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
+		.build();
+    }
+
     /**
      * {@link Comparator} to sort by {@link Groups#_ID}.
      */
diff --git a/src/com/android/contacts/ui/EditContactActivity.java b/src/com/android/contacts/ui/EditContactActivity.java
index 9c0c69a..5e9959f 100644
--- a/src/com/android/contacts/ui/EditContactActivity.java
+++ b/src/com/android/contacts/ui/EditContactActivity.java
@@ -96,6 +96,9 @@
     private static final String KEY_EDIT_STATE = "state";
     private static final String KEY_SELECTED_RAW_CONTACT = "selected";
 
+    /** The result code when view activity should close after edit returns */
+    public static final int RESULT_CLOSE_VIEW_ACTIVITY = 777;
+
     private String mQuerySelection;
 
     private ScrollingTabWidget mTabWidget;
@@ -363,7 +366,7 @@
             this.setSelectedRawContactId(selectedRawContactId);
         } else {
             // Nothing remains to edit, save and bail entirely
-            this.doSaveAction();
+            this.doSaveAction(RESULT_OK);
         }
 
         // Show editor now that we've loaded state
@@ -461,7 +464,7 @@
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.btn_done:
-                doSaveAction();
+                doSaveAction(RESULT_OK);
                 break;
             case R.id.btn_discard:
                 doRevertAction();
@@ -472,7 +475,7 @@
     /** {@inheritDoc} */
     @Override
     public void onBackPressed() {
-        doSaveAction();
+        doSaveAction(RESULT_OK);
     }
 
     /** {@inheritDoc} */
@@ -519,7 +522,7 @@
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.menu_done:
-                return doSaveAction();
+                return doSaveAction(RESULT_OK);
             case R.id.menu_discard:
                 return doRevertAction();
             case R.id.menu_add:
@@ -530,6 +533,10 @@
                 return doPickPhotoAction();
             case R.id.menu_photo_remove:
                 return doRemovePhotoAction();
+            case R.id.menu_split:
+                return doSplitContactAction();
+            case R.id.menu_join:
+                return doJoinContactAction();
         }
         return false;
     }
@@ -552,8 +559,11 @@
 
         private WeakReference<ProgressDialog> progress;
 
-        public PersistTask(EditContactActivity target) {
+        private final int mResultCode;
+
+        public PersistTask(EditContactActivity target, int resultCode) {
             super(target);
+            mResultCode = resultCode;
         }
 
         /** {@inheritDoc} */
@@ -599,7 +609,7 @@
                          final Uri contactLookupUri = RawContacts.getContactLookupUri(resolver,
                                  rawContactUri);
                          intent.setData(contactLookupUri);
-                         target.setResult(RESULT_OK, intent);
+                         target.setResult(mResultCode, intent);
                          target.finish();
                     }
                     result = (diff.size() > 0) ? RESULT_SUCCESS : RESULT_UNCHANGED;
@@ -665,10 +675,10 @@
      * Saves or creates the contact based on the mode, and if successful
      * finishes the activity.
      */
-    private boolean doSaveAction() {
+    private boolean doSaveAction(int resultCode) {
         if (!hasValidState()) return false;
 
-        final PersistTask task = new PersistTask(this);
+        final PersistTask task = new PersistTask(this, resultCode);
         task.execute(mState);
 
         return true;
@@ -751,6 +761,16 @@
         }
     }
 
+    private boolean doSplitContactAction() {
+        mState.splitRawContacts();
+        return doSaveAction(RESULT_CLOSE_VIEW_ACTIVITY);
+    }
+
+    private boolean doJoinContactAction() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
 
 
 
diff --git a/src/com/android/contacts/ui/FastTrackActivity.java b/src/com/android/contacts/ui/QuickContactActivity.java
similarity index 61%
rename from src/com/android/contacts/ui/FastTrackActivity.java
rename to src/com/android/contacts/ui/QuickContactActivity.java
index 6958298..5cd2d18 100644
--- a/src/com/android/contacts/ui/FastTrackActivity.java
+++ b/src/com/android/contacts/ui/QuickContactActivity.java
@@ -21,22 +21,23 @@
 import android.graphics.Rect;
 import android.net.Uri;
 import android.os.Bundle;
-import android.provider.ContactsContract.FastTrack;
+import android.provider.ContactsContract.QuickContact;
 
 /**
- * Stub translucent activity that just shows {@link FastTrackWindow} floating
+ * Stub translucent activity that just shows {@link QuickContactWindow} floating
  * above the caller. This temporary hack should eventually be replaced with
  * direct framework support.
  */
-public final class FastTrackActivity extends Activity implements FastTrackWindow.OnDismissListener {
-    private FastTrackWindow mFastTrack;
+public final class QuickContactActivity extends Activity implements
+        QuickContactWindow.OnDismissListener {
+    private QuickContactWindow mQuickContact;
 
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        if (FastTrackWindow.TRACE_LAUNCH) {
-            android.os.Debug.startMethodTracing(FastTrackWindow.TRACE_TAG);
+        if (QuickContactWindow.TRACE_LAUNCH) {
+            android.os.Debug.startMethodTracing(QuickContactWindow.TRACE_TAG);
         }
 
         // Use our local window token for now
@@ -45,22 +46,22 @@
         final Bundle extras = intent.getExtras();
 
         // Read requested parameters for displaying
-        final Rect target = (Rect)extras.getParcelable(FastTrack.EXTRA_TARGET_RECT);
-        final int mode = extras.getInt(FastTrack.EXTRA_MODE, FastTrack.MODE_MEDIUM);
-        final String[] excludeMimes = extras.getStringArray(FastTrack.EXTRA_EXCLUDE_MIMES);
+        final Rect target = (Rect)extras.getParcelable(QuickContact.EXTRA_TARGET_RECT);
+        final int mode = extras.getInt(QuickContact.EXTRA_MODE, QuickContact.MODE_MEDIUM);
+        final String[] excludeMimes = extras.getStringArray(QuickContact.EXTRA_EXCLUDE_MIMES);
 
-        mFastTrack = new FastTrackWindow(this, this);
-        mFastTrack.show(lookupUri, target, mode, excludeMimes);
+        mQuickContact = new QuickContactWindow(this, this);
+        mQuickContact.show(lookupUri, target, mode, excludeMimes);
     }
 
     @Override
     protected void onStop() {
         super.onStop();
-        mFastTrack.dismiss();
+        mQuickContact.dismiss();
     }
 
     /** {@inheritDoc} */
-    public void onDismiss(FastTrackWindow dialog) {
+    public void onDismiss(QuickContactWindow dialog) {
         // When dismissed, finish this activity
         finish();
     }
diff --git a/src/com/android/contacts/ui/FastTrackWindow.java b/src/com/android/contacts/ui/QuickContactWindow.java
similarity index 95%
rename from src/com/android/contacts/ui/FastTrackWindow.java
rename to src/com/android/contacts/ui/QuickContactWindow.java
index 2f0d212..6059079 100644
--- a/src/com/android/contacts/ui/FastTrackWindow.java
+++ b/src/com/android/contacts/ui/QuickContactWindow.java
@@ -40,7 +40,7 @@
 import android.net.Uri;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.FastTrack;
+import android.provider.ContactsContract.QuickContact;
 import android.provider.ContactsContract.Presence;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.ContactsContract.CommonDataKinds.Email;
@@ -86,17 +86,17 @@
  * Window that shows fast-track contact details for a specific
  * {@link Contacts#_ID}.
  */
-public class FastTrackWindow implements Window.Callback,
+public class QuickContactWindow implements Window.Callback,
         NotifyingAsyncQueryHandler.AsyncQueryListener, View.OnClickListener,
         AbsListView.OnItemClickListener, CompoundButton.OnCheckedChangeListener {
-    private static final String TAG = "FastTrackWindow";
+    private static final String TAG = "QuickContactWindow";
 
     /**
-     * Interface used to allow the person showing a {@link FastTrackWindow} to
+     * Interface used to allow the person showing a {@link QuickContactWindow} to
      * know when the window has been dismissed.
      */
     public interface OnDismissListener {
-        public void onDismiss(FastTrackWindow dialog);
+        public void onDismiss(QuickContactWindow dialog);
     }
 
     private final Context mContext;
@@ -164,13 +164,13 @@
     private static final int TOKEN_DATA = 3;
 
     static final boolean TRACE_LAUNCH = false;
-    static final String TRACE_TAG = "fasttrack";
+    static final String TRACE_TAG = "quickcontact";
 
     /**
      * Prepare a fast-track window to show in the given {@link Context}.
      */
-    public FastTrackWindow(Context context) {
-        mContext = new ContextThemeWrapper(context, R.style.FastTrack);
+    public QuickContactWindow(Context context) {
+        mContext = new ContextThemeWrapper(context, R.style.QuickContact);
         mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         mWindowManager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
 
@@ -178,7 +178,7 @@
         mWindow.setCallback(this);
         mWindow.setWindowManager(mWindowManager, null, null);
 
-        mWindow.setContentView(R.layout.fasttrack);
+        mWindow.setContentView(R.layout.quickcontact);
 
         mArrowUp = (ImageView)mWindow.findViewById(R.id.arrow_up);
         mArrowDown = (ImageView)mWindow.findViewById(R.id.arrow_down);
@@ -186,9 +186,9 @@
         mResolveCache = new ResolveCache(mContext);
 
         final Resources res = mContext.getResources();
-        mShadowHeight = res.getDimensionPixelSize(R.dimen.fasttrack_shadow);
+        mShadowHeight = res.getDimensionPixelSize(R.dimen.quickcontact_shadow);
 
-        mTrack = (ViewGroup)mWindow.findViewById(R.id.fasttrack);
+        mTrack = (ViewGroup)mWindow.findViewById(R.id.quickcontact);
         mTrackScroll = (HorizontalScrollView)mWindow.findViewById(R.id.scroll);
 
         mFooter = mWindow.findViewById(R.id.footer);
@@ -199,7 +199,7 @@
         mSetPrimaryCheckBox.setOnCheckedChangeListener(this);
 
         // Prepare track entrance animation
-        mTrackAnim = AnimationUtils.loadAnimation(mContext, R.anim.fasttrack);
+        mTrackAnim = AnimationUtils.loadAnimation(mContext, R.anim.quickcontact);
         mTrackAnim.setInterpolator(new Interpolator() {
             public float getInterpolation(float t) {
                 // Pushes past the target area, then snaps back into place.
@@ -215,7 +215,7 @@
      * notify the given {@link OnDismissListener} each time this dialog is
      * dismissed.
      */
-    public FastTrackWindow(Context context, OnDismissListener dismissListener) {
+    public QuickContactWindow(Context context, OnDismissListener dismissListener) {
         this(context);
         mDismissListener = dismissListener;
     }
@@ -223,13 +223,13 @@
     private View getHeaderView(int mode) {
         View header = null;
         switch (mode) {
-            case FastTrack.MODE_SMALL:
+            case QuickContact.MODE_SMALL:
                 header = mWindow.findViewById(R.id.header_small);
                 break;
-            case FastTrack.MODE_MEDIUM:
+            case QuickContact.MODE_MEDIUM:
                 header = mWindow.findViewById(R.id.header_medium);
                 break;
-            case FastTrack.MODE_LARGE:
+            case QuickContact.MODE_LARGE:
                 header = mWindow.findViewById(R.id.header_large);
                 break;
         }
@@ -264,7 +264,7 @@
         mHeader = getHeaderView(mode);
         mExcludeMimes = excludeMimes;
 
-        setHeaderText(R.id.name, R.string.fasttrack_missing_name);
+        setHeaderText(R.id.name, R.string.quickcontact_missing_name);
         setHeaderText(R.id.status, null);
         setHeaderImage(R.id.presence, null);
 
@@ -325,14 +325,14 @@
             // edge with top of anchor area, and adjusting to inset arrow.
             showArrow(R.id.arrow_down, mAnchor.centerX());
             l.y = mAnchor.top - blockHeight + mShadowHeight;
-            l.windowAnimations = R.style.FastTrackAboveAnimation;
+            l.windowAnimations = R.style.QuickContactAboveAnimation;
 
         } else {
             // Otherwise show upwards callout, aligning block top with bottom of
             // anchor area, and adjusting to inset arrow.
             showArrow(R.id.arrow_up, mAnchor.centerX());
             l.y = mAnchor.bottom - mShadowHeight;
-            l.windowAnimations = R.style.FastTrackBelowAnimation;
+            l.windowAnimations = R.style.QuickContactBelowAnimation;
 
         }
 
@@ -418,10 +418,10 @@
      */
     private synchronized void considerShowing() {
         if (mHasSummary && mHasSocial && mHasActions && !mShowing) {
-            if (mMode == FastTrack.MODE_MEDIUM && !mHasValidSocial) {
+            if (mMode == QuickContact.MODE_MEDIUM && !mHasValidSocial) {
                 // Missing valid social, swap medium for small header
                 mHeader.setVisibility(View.GONE);
-                mHeader = getHeaderView(FastTrack.MODE_SMALL);
+                mHeader = getHeaderView(QuickContact.MODE_SMALL);
             }
 
             // All queries have returned, pull curtain
@@ -546,21 +546,21 @@
         int resId = -1;
         switch (status) {
             case Presence.AVAILABLE:
-                resId = R.drawable.fasttrack_slider_presence_active;
+                resId = R.drawable.quickcontact_slider_presence_active;
                 break;
             case Presence.IDLE:
             case Presence.AWAY:
-                resId = R.drawable.fasttrack_slider_presence_away;
+                resId = R.drawable.quickcontact_slider_presence_away;
                 break;
             case Presence.DO_NOT_DISTURB:
-                resId = R.drawable.fasttrack_slider_presence_busy;
+                resId = R.drawable.quickcontact_slider_presence_busy;
                 break;
             case Presence.INVISIBLE:
-                resId = R.drawable.fasttrack_slider_presence_inactive;
+                resId = R.drawable.quickcontact_slider_presence_inactive;
                 break;
             case Presence.OFFLINE:
             default:
-                resId = R.drawable.fasttrack_slider_presence_inactive;
+                resId = R.drawable.quickcontact_slider_presence_inactive;
         }
         return mContext.getResources().getDrawable(resId);
     }
@@ -999,7 +999,8 @@
      * the icon provided by the {@link DataKind}.
      */
     private View inflateAction(String mimeType) {
-        CheckableImageView view = (CheckableImageView)mInflater.inflate(R.layout.fasttrack_item, mTrack, false);
+        CheckableImageView view = (CheckableImageView)mInflater.inflate(
+                R.layout.quickcontact_item, mTrack, false);
         boolean isActionSet = false;
 
         // Add direct intent if single child, otherwise flag for multiple
@@ -1095,7 +1096,8 @@
                 }
 
             } catch (ActivityNotFoundException e) {
-                Toast.makeText(mContext, R.string.fasttrack_missing_app, Toast.LENGTH_SHORT).show();
+                Toast.makeText(mContext, R.string.quickcontact_missing_app, Toast.LENGTH_SHORT)
+                        .show();
             }
         } else if (tag instanceof ActionList) {
             // Incoming tag is a MIME-type, so show resolution list
@@ -1120,7 +1122,8 @@
 
                 public View getView(int position, View convertView, ViewGroup parent) {
                     if (convertView == null) {
-                        convertView = mInflater.inflate(R.layout.fasttrack_resolve_item, parent, false);
+                        convertView = mInflater.inflate(
+                                R.layout.quickcontact_resolve_item, parent, false);
                     }
 
                     // Set action title based on summary value
diff --git a/src/com/android/contacts/ui/widget/CheckableImageView.java b/src/com/android/contacts/ui/widget/CheckableImageView.java
index ceddf57..ff5abc0 100644
--- a/src/com/android/contacts/ui/widget/CheckableImageView.java
+++ b/src/com/android/contacts/ui/widget/CheckableImageView.java
@@ -23,7 +23,7 @@
 
 /**
  * A special variation of ImageView that can be used as a checkable object.
- * This is used as the background view of fasttrack chiclet, which is in checked state
+ * This is used as the background view of quickcontact chiclet, which is in checked state
  * when disambig list is shown. Otherwise, it works identically to a ImageView.
  */
 public class CheckableImageView extends ImageView implements Checkable {
