diff --git a/src/com/android/contacts/ui/QuickContactActivity.java b/src/com/android/contacts/ui/QuickContactActivity.java
index d17e3be..b5e445f 100644
--- a/src/com/android/contacts/ui/QuickContactActivity.java
+++ b/src/com/android/contacts/ui/QuickContactActivity.java
@@ -65,13 +65,30 @@
         final Bundle extras = intent.getExtras();
 
         // Read requested parameters for displaying
-        final Rect target = (Rect)extras.getParcelable(QuickContact.EXTRA_TARGET_RECT);
+        final Rect target = getTargetRect(intent);
         final int mode = extras.getInt(QuickContact.EXTRA_MODE, QuickContact.MODE_MEDIUM);
         final String[] excludeMimes = extras.getStringArray(QuickContact.EXTRA_EXCLUDE_MIMES);
 
         mQuickContact.show(lookupUri, target, mode, excludeMimes);
     }
 
+    private Rect getTargetRect(Intent intent) {
+        Rect target = intent.getSourceBounds();
+        if (target != null) {
+            return target;
+        }
+        final Bundle extras = intent.getExtras();
+        try {
+            target = (Rect)extras.getParcelable(QuickContact.EXTRA_TARGET_RECT);
+            if (target != null) {
+                return target;
+            }
+        } catch (ClassCastException ex) {
+            // fall through
+        }
+        return new Rect(0, 0, 0, 0);
+    }
+
     /** {@inheritDoc} */
     @Override
     public void onBackPressed() {
