diff --git a/java/com/android/dialer/speeddial/SpeedDialFragment.java b/java/com/android/dialer/speeddial/SpeedDialFragment.java
index d9593c2..f94ad7d 100644
--- a/java/com/android/dialer/speeddial/SpeedDialFragment.java
+++ b/java/com/android/dialer/speeddial/SpeedDialFragment.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.database.ContentObserver;
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -45,6 +46,7 @@
 import com.android.dialer.common.concurrent.DefaultFutureCallback;
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.SupportUiListener;
+import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.constants.ActivityRequestCodes;
 import com.android.dialer.historyitemactions.DividerModule;
 import com.android.dialer.historyitemactions.HistoryItemActionBottomSheet;
@@ -99,6 +101,16 @@
         }
       };
 
+  /** Listen for changes to the strequents content observer. */
+  private final ContentObserver strequentsContentObserver =
+      new ContentObserver(ThreadUtil.getUiThreadHandler()) {
+        @Override
+        public void onChange(boolean selfChange) {
+          super.onChange(selfChange);
+          loadContacts();
+        }
+      };
+
   private final SpeedDialHeaderListener headerListener = new SpeedDialFragmentHeaderListener();
   private final SpeedDialSuggestedListener suggestedListener = new SpeedDialSuggestedListener();
 
@@ -272,6 +284,9 @@
     super.onStart();
     PermissionsUtil.registerPermissionReceiver(
         getActivity(), readContactsPermissionGrantedReceiver, Manifest.permission.READ_CONTACTS);
+    getContext()
+        .getContentResolver()
+        .registerContentObserver(Contacts.CONTENT_STREQUENT_URI, true, strequentsContentObserver);
   }
 
   @Override
@@ -279,6 +294,7 @@
     super.onStop();
     PermissionsUtil.unregisterPermissionReceiver(
         getContext(), readContactsPermissionGrantedReceiver);
+    getContext().getContentResolver().unregisterContentObserver(strequentsContentObserver);
   }
 
   private class SpeedDialFragmentHeaderListener implements SpeedDialHeaderListener {
