*/
 
 static ushort idVendor;
-module_param(idVendor, ushort, 0);
+module_param(idVendor, ushort, 0644);
 MODULE_PARM_DESC(idVendor, "USB Vendor ID");
 
 static ushort idProduct;
-module_param(idProduct, ushort, 0);
+module_param(idProduct, ushort, 0644);
 MODULE_PARM_DESC(idProduct, "USB Product ID");
 
 static ushort bcdDevice;
-module_param(bcdDevice, ushort, 0);
+module_param(bcdDevice, ushort, 0644);
 MODULE_PARM_DESC(bcdDevice, "USB Device version (BCD)");
 
 static char *iManufacturer;
-module_param(iManufacturer, charp, 0);
+module_param(iManufacturer, charp, 0644);
 MODULE_PARM_DESC(iManufacturer, "USB Manufacturer string");
 
 static char *iProduct;
-module_param(iProduct, charp, 0);
+module_param(iProduct, charp, 0644);
 MODULE_PARM_DESC(iProduct, "USB Product string");
 
 static char *iSerialNumber;
-module_param(iSerialNumber, charp, 0);
+module_param(iSerialNumber, charp, 0644);
 MODULE_PARM_DESC(iSerialNumber, "SerialNumber string");
 
 static char composite_manufacturer[50];
        /* standardized runtime overrides for device ID data */
        if (idVendor)
                cdev->desc.idVendor = cpu_to_le16(idVendor);
+       else
+               idVendor = le16_to_cpu(cdev->desc.idVendor);
        if (idProduct)
                cdev->desc.idProduct = cpu_to_le16(idProduct);
+       else
+               idProduct = le16_to_cpu(cdev->desc.idProduct);
        if (bcdDevice)
                cdev->desc.bcdDevice = cpu_to_le16(bcdDevice);
+       else
+               bcdDevice = le16_to_cpu(cdev->desc.bcdDevice);
 
        /* string overrides */
        if (iManufacturer || !cdev->desc.iManufacturer) {