diff --git a/system/bta/hh/bta_hh_le.cc b/system/bta/hh/bta_hh_le.cc
index 80740f3c23434b2675310e948991d3a1e96e4b8a..8f7b0f35b91d80c90c112d22fcf63f6d21255ba6 100644
--- a/system/bta/hh/bta_hh_le.cc
+++ b/system/bta/hh/bta_hh_le.cc
@@ -1591,6 +1591,10 @@ void read_pref_conn_params_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t ha
     if (max < BTM_BLE_CONN_INT_MIN_LIMIT)
         max = BTM_BLE_CONN_INT_MIN_LIMIT;
 
+    // If the device has no preferred connection timeout, use the default.
+    if (tout == BTM_BLE_CONN_PARAM_UNDEF)
+        tout = BTM_BLE_CONN_TIMEOUT_DEF;
+
     tBTA_HH_DEV_CB *p_dev_cb = (tBTA_HH_DEV_CB*)data;
     BTM_BleSetPrefConnParams(p_dev_cb->addr, min, max, latency, tout);
     L2CA_UpdateBleConnParams(p_dev_cb->addr, min, max, latency, tout);