Index: gpilotd/gpilotd.c =================================================================== --- gpilotd/gpilotd.c (revision 1547) +++ gpilotd/gpilotd.c (revision 1548) @@ -1079,7 +1079,7 @@ hal_device_added (LibHalContext *ctx, const char *udi) { gboolean visor_net = FALSE; - char *bus, *match_str; + char *bus, *platform, *match_str; int vendor_id, product_id, i; GPilotDevice *device; DBusError error; @@ -1090,15 +1090,23 @@ load_devices_xml (); - /* HAL match rule: we look for info.bus == 'usb_device' + /* HAL match rule: we look for pda.platform == 'palm' + * (or the legacy info.bus == 'usb_device') * and then try to match the usb_device.product_id and usb_device.vendor_id * against the list in devices.xml. */ - if (!(bus = libhal_device_get_property_string (hal_ctx, udi, "info.bus", NULL))) + if (platform = libhal_device_get_property_string (hal_ctx, udi, "pda.platform", NULL)) { + if (strcmp (platform, "palm") != 0) { + libhal_free_string (platform); return; - if (strcmp (bus, "usb_device") != 0) { + } + } else if (bus = libhal_device_get_property_string (hal_ctx, udi, "info.bus", NULL)) { + if (strcmp (bus, "usb_device") != 0) { libhal_free_string (bus); return; + } + } else { + return; } dbus_error_init (&error);