diff --git a/src/device.c b/src/device.c
index 69f98e4..5f9ad22 100644
--- a/src/device.c
+++ b/src/device.c
auth->passkey = passkey;
- if (confirm_hint)
+ if (confirm_hint) {
+ if (device->bonding != NULL) {
+ /* We know the client has indicated the intent to pair
+ * with the peer device, so we can auto-accept.
+ */
+ btd_adapter_confirm_reply(device->adapter,
+ &device->bdaddr,
+ type, TRUE);
+ return 0;
+ }
+
err = agent_request_authorization(auth->agent, device,
confirm_cb, auth, NULL);
- else
+ } else {
err = agent_request_confirmation(auth->agent, device, passkey,
confirm_cb, auth, NULL);
+ }
if (err < 0) {
if (err == -EINPROGRESS) {