diff --git a/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/UsbDevice.cs b/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/UsbDevice.cs
index b067459..261f1c2 100644
--- a/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/UsbDevice.cs
+++ b/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/UsbDevice.cs
@@ -54,9 +54,12 @@ namespace Banshee.Hardware.Gio
             if (raw != null) {
                 var parent = raw.Device.UdevMetadata.Parent;
                 while (parent != null) {
-                    if (parent.PropertyExists (UdevUsbBusNumber) && parent.PropertyExists (UdevUsbDeviceNumber)) {
+                    bool isUsb = parent.PropertyExists (UdevUsbBusNumber) && parent.PropertyExists (UdevUsbDeviceNumber);
+                    if (!isUsb && parent.PropertyExists ("ID_BUS"))
+                        isUsb = StringComparer.OrdinalIgnoreCase.Equals ("usb", parent.GetPropertyString ("ID_BUS"));
+                    if (isUsb)
                         return new UsbDevice (new RawUsbDevice (raw.Device.Manager, raw.Device.GioMetadata, parent));
-                    }
+
                     parent = parent.Parent;
                 }
             }

