diff --git a/src/com/android/dialer/list/AllContactsFragment.java b/src/com/android/dialer/list/AllContactsFragment.java
index 0de8434..0f31ff8 100644
--- a/src/com/android/dialer/list/AllContactsFragment.java
+++ b/src/com/android/dialer/list/AllContactsFragment.java
@@ -19,6 +19,9 @@
 import static android.Manifest.permission.READ_CONTACTS;
 
 import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
 import android.content.Loader;
 import android.content.pm.PackageManager;
 import android.database.Cursor;
@@ -52,6 +55,17 @@
 
     private EmptyContentView mEmptyListView;
 
+    /**
+     * Listen to broadcast events about permissions in order to be notified if the READ_CONTACTS
+     * permission is granted via the UI in another fragment.
+     */
+    private BroadcastReceiver mReadContactsPermissionGrantedReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            reloadData();
+        }
+    };
+
     public AllContactsFragment() {
         setQuickContactEnabled(false);
         setAdjustSelectionBoundsEnabled(true);
@@ -76,6 +90,20 @@
     }
 
     @Override
+    public void onStart() {
+        super.onStart();
+        PermissionsUtil.registerPermissionReceiver(getActivity(),
+                mReadContactsPermissionGrantedReceiver, READ_CONTACTS);
+    }
+
+    @Override
+    public void onStop() {
+        PermissionsUtil.unregisterPermissionReceiver(getActivity(),
+                mReadContactsPermissionGrantedReceiver);
+        super.onStop();
+    }
+
+    @Override
     protected void startLoading() {
         if (PermissionsUtil.hasPermission(getActivity(), READ_CONTACTS)) {
             super.startLoading();
diff --git a/src/com/android/dialer/list/SpeedDialFragment.java b/src/com/android/dialer/list/SpeedDialFragment.java
index ebfc72d..324caef 100644
--- a/src/com/android/dialer/list/SpeedDialFragment.java
+++ b/src/com/android/dialer/list/SpeedDialFragment.java
@@ -25,6 +25,7 @@
 import android.app.LoaderManager;
 import android.content.CursorLoader;
 import android.content.Loader;
+import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.graphics.Rect;
 import android.net.Uri;
@@ -64,6 +65,8 @@
         PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener,
         EmptyContentView.OnEmptyViewActionButtonClickedListener {
 
+    private static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
+
     /**
      * By default, the animation code assumes that all items in a list view are of the same height
      * when animating new list items into view (e.g. from the bottom of the screen into view).
@@ -470,10 +473,20 @@
         }
 
         if (!PermissionsUtil.hasPermission(activity, READ_CONTACTS)) {
-            requestPermissions(new String[] {READ_CONTACTS}, 0);
+            requestPermissions(new String[] {READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
         } else {
             // Switch tabs
             ((HostInterface) activity).showAllContactsTab();
         }
     }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, String[] permissions,
+            int[] grantResults) {
+        if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) {
+            if (grantResults.length == 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) {
+                PermissionsUtil.notifyPermissionGranted(getActivity(), READ_CONTACTS);
+            }
+        }
+    }
 }
