Hi, After last pattern matching changes, maybe some entries should be revised: Empty strings(current meaning?): {"", "Scanner", "1.80", BLIST_NOLUN}, /* responds to all lun */ {"Promise", "", NULL, BLIST_SPARSELUN}, {"HP", "C1790A", "", BLIST_NOLUN}, /* scanjet iip */ {"HP", "C2500A", "", BLIST_NOLUN}, /* scanjet iicx */ Overlapping(?) strings(remove one???): {"DELL", "PV660F", NULL, BLIST_SPARSELUN}, {"DELL", "PV660F PSEUDO", NULL, BLIST_SPARSELUN}, {"NRC", "MBR-7", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"NRC", "MBR-7.4", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"Promise", "", NULL, BLIST_SPARSELUN}, {"Promise", "VTrak E610f", NULL, BLIST_SPARSELUN | BLIST_NO_RSOC}, Odd "revision level" string(is it right? EOT?): {"SEAGATE", "ST157N", "\004|j", BLIST_NOLUN}, Duplicate strings(They should be merged): {"TEXEL", "CD-ROM", "1.06", BLIST_BORKEN}, {"TEXEL", "CD-ROM", "1.06", BLIST_NOLUN}, Keep in mind, for future patches, that there are regex metacharacters(!!): {"IOMEGA", "Io20S *F", NULL, BLIST_KEY}, {"INSITE", "Floptical F*8I", NULL, BLIST_KEY}, {"DELL", "PSEUDO DEVICE .", NULL, BLIST_SPARSELUN}, /* Dell PV 530F */ For homogeneity reasons, should "*" revision level be replaced by NULL? And the current pattern matching algorithm should be described clearer, right now it's a bit confused. Thank you.