}
 
 resubmit:
+       if (!gspca_dev->streaming)
+               return;
        /* resubmit the URB */
        st = usb_submit_urb(urb, GFP_ATOMIC);
        if (st < 0)
        struct gspca_dev *gspca_dev = (struct gspca_dev *) urb->context;
 
        gspca_dbg(gspca_dev, D_PACK, "isoc irq\n");
-       if (!vb2_start_streaming_called(&gspca_dev->queue))
+       if (!gspca_dev->streaming)
                return;
        fill_frame(gspca_dev, urb);
 }
        int st;
 
        gspca_dbg(gspca_dev, D_PACK, "bulk irq\n");
-       if (!vb2_start_streaming_called(&gspca_dev->queue))
+       if (!gspca_dev->streaming)
                return;
        switch (urb->status) {
        case 0:
                                urb->actual_length);
 
 resubmit:
+       if (!gspca_dev->streaming)
+               return;
        /* resubmit the URB */
        if (gspca_dev->cam.bulk_nurbs != 0) {
                st = usb_submit_urb(urb, GFP_ATOMIC);