u16 wValue, wIndex;
 
        /* No driver, we shouldn't be enabled ... */
-       if (!d->driver || !d->enabled || d->suspended) {
+       if (!d->driver || !d->enabled) {
                EPDBG(ep,
-                     "Device is wrong state driver=%p enabled=%d"
-                     " suspended=%d\n",
-                     d->driver, d->enabled, d->suspended);
+                     "Device is wrong state driver=%p enabled=%d\n",
+                     d->driver, d->enabled);
                return std_req_stall;
        }
 
+       /*
+        * Note: we used to reject/stall requests while suspended,
+        * we don't do that anymore as we seem to have cases of
+        * mass storage getting very upset.
+        */
+
        /* First packet, grab speed */
        if (d->gadget.speed == USB_SPEED_UNKNOWN) {
                d->gadget.speed = ep->vhub->speed;
 
 
        /* Endpoint enabled ? */
        if (!ep->epn.enabled || !u_ep->desc || !ep->dev || !ep->d_idx ||
-           !ep->dev->enabled || ep->dev->suspended) {
+           !ep->dev->enabled) {
                EPDBG(ep, "Enqueuing request on wrong or disabled EP\n");
                return -ESHUTDOWN;
        }