{ HID_USB_DEVICE(USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1006) },
        { HID_USB_DEVICE(USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1007) },
        { HID_USB_DEVICE(USB_VENDOR_ID_IMATION, USB_DEVICE_ID_DISC_STAKKA) },
-       { HID_USB_DEVICE(USB_VENDOR_ID_JABRA, USB_DEVICE_ID_JABRA_SPEAK_410) },
-       { HID_USB_DEVICE(USB_VENDOR_ID_JABRA, USB_DEVICE_ID_JABRA_SPEAK_510) },
        { HID_USB_DEVICE(USB_VENDOR_ID_JABRA, USB_DEVICE_ID_JABRA_GN9350E) },
        { HID_USB_DEVICE(USB_VENDOR_ID_KBGEAR, USB_DEVICE_ID_KBGEAR_JAMSTUDIO) },
        { HID_USB_DEVICE(USB_VENDOR_ID_KWORLD, USB_DEVICE_ID_KWORLD_RADIO_FM700) },
            hdev->product <= USB_DEVICE_ID_NCR_LAST)
                return HID_QUIRK_NO_INIT_REPORTS;
 
+       /* These devices must be ignored if version (bcdDevice) is too old */
+       if (hdev->bus == BUS_USB && hdev->vendor == USB_VENDOR_ID_JABRA) {
+               switch (hdev->product) {
+               case USB_DEVICE_ID_JABRA_SPEAK_410:
+                       if (hdev->version < 0x0111)
+                               return HID_QUIRK_IGNORE;
+                       break;
+               case USB_DEVICE_ID_JABRA_SPEAK_510:
+                       if (hdev->version < 0x0214)
+                               return HID_QUIRK_IGNORE;
+                       break;
+               }
+       }
+
        mutex_lock(&dquirks_lock);
        quirk_entry = hid_exists_dquirk(hdev);
        if (quirk_entry)
 
        hid->bus = BUS_USB;
        hid->vendor = le16_to_cpu(dev->descriptor.idVendor);
        hid->product = le16_to_cpu(dev->descriptor.idProduct);
+       hid->version = le16_to_cpu(dev->descriptor.bcdDevice);
        hid->name[0] = 0;
        if (intf->cur_altsetting->desc.bInterfaceProtocol ==
                        USB_INTERFACE_PROTOCOL_MOUSE)