diff --git a/res/values/config.xml b/res/values/config.xml
new file mode 100644
index 0000000..56cb667
--- /dev/null
+++ b/res/values/config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (C) 2019 The Android Open Source Project
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<resources>
+    <!-- Whether existing messages should be loaded. Recommended to turn off if head-unit's and
+     BT-paired phone's clocks are not synced.-->
+    <bool name="config_loadExistingMessages">false</bool>
+</resources>
diff --git a/src/com/android/car/messenger/MessengerDelegate.java b/src/com/android/car/messenger/MessengerDelegate.java
index ed154c3..b2a5cda 100644
--- a/src/com/android/car/messenger/MessengerDelegate.java
+++ b/src/com/android/car/messenger/MessengerDelegate.java
@@ -11,6 +11,7 @@
 import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources.NotFoundException;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
@@ -41,12 +42,10 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
 import java.util.function.Predicate;
 
 /** Delegate class responsible for handling messaging service actions */
@@ -59,6 +58,7 @@
     private BluetoothMapClient mBluetoothMapClient;
     private NotificationManager mNotificationManager;
     private final SmsDatabaseHandler mSmsDatabaseHandler;
+    private boolean mShouldLoadExistingMessages;
 
     @VisibleForTesting
     final Map<MessageKey, MapMessage> mMessages = new HashMap<>();
@@ -74,8 +74,16 @@
 
         mNotificationManager =
                 (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
-
         mSmsDatabaseHandler = new SmsDatabaseHandler(mContext);
+
+        try {
+            mShouldLoadExistingMessages =
+                    mContext.getResources().getBoolean(R.bool.config_loadExistingMessages);
+        } catch(NotFoundException e) {
+            // Should only happen for robolectric unit tests;
+            L.e(TAG, e, "Disabling loading of existing messages");
+            mShouldLoadExistingMessages = false;
+        }
     }
 
     @Override
@@ -104,7 +112,7 @@
     public void onDeviceConnected(BluetoothDevice device) {
         L.d(TAG, "Device connected: \t%s", device.getAddress());
         mBTDeviceAddressToConnectionTimestamp.put(device.getAddress(), System.currentTimeMillis());
-        if (mBluetoothMapClient != null) {
+        if (mBluetoothMapClient != null && mShouldLoadExistingMessages) {
             mBluetoothMapClient.getUnreadMessages(device);
         } else {
             // onDeviceConnected should be sent by BluetoothMapClient, so log if we run into this
