adpt_hba* pHba = NULL;
        struct adpt_device* pDev = NULL;        /* dpt per device information */
 
-       cmd->scsi_done = done;
        /*
         * SCSI REQUEST_SENSE commands will be executed automatically by the 
         * Host Adapter for any errors, so they should not be executed 
 
        if ((cmd->cmnd[0] == REQUEST_SENSE) && (cmd->sense_buffer[0] != 0)) {
                cmd->result = (DID_OK << 16);
-               cmd->scsi_done(cmd);
+               scsi_done(cmd);
                return 0;
        }
 
                        // TODO: if any luns are at this bus, scsi id then fake a TEST_UNIT_READY and INQUIRY response 
                        // with type 7F (for all luns less than the max for this bus,id) so the lun scan will continue.
                        cmd->result = (DID_NO_CONNECT << 16);
-                       cmd->scsi_done(cmd);
+                       scsi_done(cmd);
                        return 0;
                }
                cmd->device->hostdata = pDev;
                        printk(KERN_WARNING"%s: scsi opcode 0x%x not supported.\n",
                             pHba->name, cmd->cmnd[0]);
                        cmd->result = (DID_ERROR <<16);
-                       cmd->scsi_done(cmd);
+                       scsi_done(cmd);
                        return  0;
                }
        }
 
        cmd->result |= (dev_status);
 
-       if(cmd->scsi_done != NULL){
-               cmd->scsi_done(cmd);
-       } 
+       scsi_done(cmd);
 }