diff -ruN cups-1.4.3/backend/usb-libusb.c cups-1.4.3-new/backend/usb-libusb.c --- cups-1.4.3/backend/usb-libusb.c 2009-09-11 22:03:31.000000000 +0200 +++ cups-1.4.3-new/backend/usb-libusb.c 2010-05-25 18:25:52.000000000 +0200 @@ -518,10 +518,12 @@ if ((sern = cupsGetOption("SERIALNUMBER", num_values, values)) == NULL) if ((sern = cupsGetOption("SERN", num_values, values)) == NULL) - if ((sern = cupsGetOption("SN", num_values, values)) == NULL) + if (((sern = cupsGetOption("SN", num_values, values)) == NULL) && + (printer->device->descriptor.iSerialNumber != 0)) { /* - * Try getting the serial number from the device itself... + * Try getting the serial number from the device itself, + * if it is available... */ int length = usb_get_string_simple(printer->handle,