*/
        --server->sequence_number;
        rc = smb_send(server, in_buf, be32_to_cpu(in_buf->smb_buf_length));
+       if (rc < 0)
+               server->sequence_number--;
+
        mutex_unlock(&server->srv_mutex);
 
        cifs_dbg(FYI, "issued NT_CANCEL for mid %u, rc = %d\n",
 
        rc = smb_send_rqst(server, rqst);
        cifs_in_send_dec(server);
        cifs_save_when_sent(mid);
+
+       if (rc < 0)
+               server->sequence_number -= 2;
        mutex_unlock(&server->srv_mutex);
 
        if (rc == 0)
        cifs_in_send_dec(ses->server);
        cifs_save_when_sent(midQ);
 
+       if (rc < 0)
+               ses->server->sequence_number -= 2;
        mutex_unlock(&ses->server->srv_mutex);
 
        if (rc < 0) {
        rc = smb_send(ses->server, in_buf, be32_to_cpu(in_buf->smb_buf_length));
        cifs_in_send_dec(ses->server);
        cifs_save_when_sent(midQ);
+
+       if (rc < 0)
+               ses->server->sequence_number -= 2;
+
        mutex_unlock(&ses->server->srv_mutex);
 
        if (rc < 0)
        rc = smb_send(ses->server, in_buf, be32_to_cpu(in_buf->smb_buf_length));
        cifs_in_send_dec(ses->server);
        cifs_save_when_sent(midQ);
+
+       if (rc < 0)
+               ses->server->sequence_number -= 2;
+
        mutex_unlock(&ses->server->srv_mutex);
 
        if (rc < 0) {