diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c
index 87017fb..a19fcb0 100644
--- a/drivers/scsi/aha1542.c
+++ b/drivers/scsi/aha1542.c
@@ -418,15 +418,7 @@
 	int mbo;
 	struct mailbox *mb = aha1542->mb;
 	struct ccb *ccb = aha1542->ccb;
-#ifdef DEBUG
-	int i;
 
-	if (target > 1) {
-		cmd->result = DID_TIME_OUT << 16;
-		done(cmd);
-		return 0;
-	}
-#endif
 	if (*cmd->cmnd == REQUEST_SENSE) {
 		/* Don't do the command - we have the sense data already */
 		cmd->result = 0;
@@ -434,19 +426,16 @@
 		return 0;
 	}
 #ifdef DEBUG
-	if (*cmd->cmnd == READ_10 || *cmd->cmnd == WRITE_10)
-		i = xscsi2int(cmd->cmnd + 2);
-	else if (*cmd->cmnd == READ_6 || *cmd->cmnd == WRITE_6)
-		i = scsi2int(cmd->cmnd + 2);
-	else
-		i = -1;
-	if (done)
-		shost_printk(KERN_DEBUG, sh, "aha1542_queuecommand: dev %d cmd %02x pos %d len %d ", target, *cmd->cmnd, i, bufflen);
-	else
-		shost_printk(KERN_DEBUG, sh, "aha1542_command: dev %d cmd %02x pos %d len %d ", target, *cmd->cmnd, i, bufflen);
-	print_hex_dump_bytes("command: ", DUMP_PREFIX_NONE, cmd->cmnd, cmd->cmd_len);
-	if (*cmd->cmnd == WRITE_10 || *cmd->cmnd == WRITE_6)
-		return 0;	/* we are still testing, so *don't* write */
+	{
+		int i = -1;
+		if (*cmd->cmnd == READ_10 || *cmd->cmnd == WRITE_10)
+			i = xscsi2int(cmd->cmnd + 2);
+		else if (*cmd->cmnd == READ_6 || *cmd->cmnd == WRITE_6)
+			i = scsi2int(cmd->cmnd + 2);
+		shost_printk(KERN_DEBUG, sh, "aha1542_queuecommand: dev %d cmd %02x pos %d len %d",
+						target, *cmd->cmnd, i, bufflen);
+		print_hex_dump_bytes("command: ", DUMP_PREFIX_NONE, cmd->cmnd, cmd->cmd_len);
+	}
 #endif
 	/* Use the outgoing mailboxes in a round-robin fashion, because this
 	   is how the host adapter will scan for them */
