diff --git a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
index 205e18e..1dae5dc 100644
--- a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
+++ b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
@@ -39,15 +39,23 @@
     private static final String FRAGMENT_TAG = "joinDialog";
     private static final String KEY_CONTACT_IDS = "contactIds";
 
+    private JoinContactsListener mListener;
+
     public interface JoinContactsListener {
         void onContactsJoined();
     }
 
-    public static void start(Activity activity, TreeSet<Long> contactIds) {
+    public static JoinContactsDialogFragment start(Activity activity, TreeSet<Long> contactIds) {
         final FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
         final JoinContactsDialogFragment newFragment
                 = JoinContactsDialogFragment.newInstance(contactIds);
         newFragment.show(ft, FRAGMENT_TAG);
+
+        if (activity instanceof JoinContactsListener) {
+            newFragment.setJoinContactsListener(((JoinContactsListener) activity));
+        }
+
+        return newFragment;
     }
 
     private static JoinContactsDialogFragment newInstance(TreeSet<Long> contactIds) {
@@ -58,6 +66,10 @@
         return fragment;
     }
 
+    public void setJoinContactsListener(JoinContactsListener listener) {
+        mListener = listener;
+    }
+
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         final TreeSet<Long> contactIds =
@@ -99,9 +111,8 @@
     }
 
     private void notifyListener() {
-        if (getActivity() instanceof JoinContactsListener) {
-            ((JoinContactsListener) getActivity()).onContactsJoined();
+        if (mListener != null) {
+            mListener.onContactsJoined();
         }
     }
-
 }
