While it is a multi-threaded library, no other threads are started until after the connection is made.

You raise a good point about checking the name for all devices.  Thanks.

We've narrowed the problem down to the hci_remote_name call - if we filter on device class alone, and never request the name, the connection works.  Are there any connections opened by hci_remote_name that need to be explicitly closed?  Would checking device class alone be sufficient?  From what I've read, device class is determined by capabilities, and isn't guaranteed to be unique to the Wiimote.

I'll take a look at the D-Bus API.


Thanks for your help,
Donnie