--- unusual_devs.h.dist	Fri Dec 14 16:17:51 2001
+++ unusual_devs.h	Tue Jan  8 07:47:57 2002
@@ -86,6 +86,12 @@
 		"FinePix 1400Zoom",
 		US_SC_8070, US_PR_CBI, NULL, US_FL_FIX_INQUIRY),
 
+UNUSUAL_DEV(  0x04ce, 0x0002, 0x0200, 0x0240, 
+		"H45 Technology Corp",
+		"ScanLogic USB ATA/ATAPI Adapter",
+		US_SC_SCSI, US_PR_BULK, NULL,
+		US_FL_FIX_INQUIRY | US_FL_SL_IDE_BUG ),
+
 /* Most of the following entries were developed with the help of
  * Shuttle/SCM directly.
  */
--- usb.h.dist	Fri Dec 14 16:17:44 2001
+++ usb.h	Mon Jan  7 20:40:13 2002
@@ -101,6 +101,7 @@
 #define US_FL_IGNORE_SER      0x00000010 /* Ignore the serial number given  */
 #define US_FL_SCM_MULT_TARG   0x00000020 /* supports multiple targets */
 #define US_FL_FIX_INQUIRY     0x00000040 /* INQUIRY response needs fixing */
+#define US_FL_SL_IDE_BUG      0x00000100 /* ScanLogic usb-ide workaround */
 
 #define USB_STOR_STRING_LEN 32
 
--- transport.c.dist	Fri Nov  9 13:37:14 2001
+++ transport.c	Tue Jan  8 07:51:10 2002
@@ -1157,7 +1157,7 @@
 		  le32_to_cpu(bcs.Signature), bcs.Tag, 
 		  bcs.Residue, bcs.Status);
 	if (bcs.Signature != cpu_to_le32(US_BULK_CS_SIGN) || 
-	    bcs.Tag != bcb.Tag || 
+	    ((bcs.Tag != bcb.Tag ) && (!(us->flags & US_FL_SL_IDE_BUG))) || 
 	    bcs.Status > US_BULK_STAT_PHASE || partial != 13) {
 		US_DEBUGP("Bulk logical error\n");
 		return USB_STOR_TRANSPORT_ERROR;

