* Find or create the sequence.
         */
        if (fc_sof_is_init(fr_sof(fp))) {
-               sp = fc_seq_start_next(&ep->seq);
-               if (!sp) {
-                       reject = FC_RJT_SEQ_XS; /* exchange shortage */
-                       goto rel;
-               }
-               sp->id = fh->fh_seq_id;
+               sp = &ep->seq;
                sp->ssb_stat |= SSB_ST_RESP;
        } else {
                sp = &ep->seq;
                goto rel;
        }
        sof = fr_sof(fp);
-       if (fc_sof_is_init(sof)) {
-               sp = fc_seq_start_next(&ep->seq);
-               sp->id = fh->fh_seq_id;
+       sp = &ep->seq;
+       if (fc_sof_is_init(sof))
                sp->ssb_stat |= SSB_ST_RESP;
-       } else {
-               sp = &ep->seq;
-               if (sp->id != fh->fh_seq_id) {
+       else if (sp->id != fh->fh_seq_id) {
                        atomic_inc(&mp->stats.seq_not_found);
                        goto rel;
-               }
        }
+
        f_ctl = ntoh24(fh->fh_f_ctl);
        fr_seq(fp) = sp;
        if (f_ctl & FC_FC_SEQ_INIT)
                fc_exch_done(sp);
                goto out;
        }
-       sp = fc_seq_start_next(sp);
        acc = fc_frame_payload_get(fp, sizeof(*acc));
        memset(acc, 0, sizeof(*acc));
        acc->reca_cmd = ELS_LS_ACC;