Index: firmware/usbstack/usb_storage.c
===================================================================
--- firmware/usbstack/usb_storage.c	(revision 28730)
+++ firmware/usbstack/usb_storage.c	(working copy)
@@ -554,6 +554,7 @@
                         MIN(WRITE_BUFFER_SIZE/SECTOR_SIZE, cur_cmd.count),
                         cur_cmd.data[cur_cmd.data_select]);
                 if(result != 0) {
+                    usb_drv_stall(ep_out, true,false);
                     send_csw(UMS_STATUS_FAIL);
                     cur_sense_data.sense_key=SENSE_MEDIUM_ERROR;
                     cur_sense_data.asc=ASC_WRITE_ERROR;
@@ -718,6 +719,7 @@
 {
     if(cur_cmd.last_result!=0) {
         /* The last read failed. */
+        usb_drv_stall(ep_in, true,true);
         send_csw(UMS_STATUS_FAIL);
         cur_sense_data.sense_key=SENSE_MEDIUM_ERROR;
         cur_sense_data.asc=ASC_READ_ERROR;
