diff --git a/src/device.c b/src/device.c
index ea316b7..f11ce2b 100644
--- a/src/device.c
+++ b/src/device.c
device->bonding = bonding;
bonding->device = device;
- err = adapter_create_bonding(adapter, &device->bdaddr,
- device->bdaddr_type, io_cap);
+ if (device_is_le(device) && !device_is_connected(device))
+ err = device_connect_le(device);
+ else
+ err = adapter_create_bonding(adapter, &device->bdaddr,
+ device->bdaddr_type, io_cap);
+
if (err < 0)
return btd_error_failed(msg, strerror(-err));