 src/core/tcp_out.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c
index e5c407e..f1d501b 100644
--- a/src/core/tcp_out.c
+++ b/src/core/tcp_out.c
@@ -1633,6 +1633,10 @@ tcp_output(struct tcp_pcb *pcb)
         pbuf_remove_header(new_seg.p, new_seg.p->tot_len - new_seg.len - TCP_HLEN);
         new_seg.p->tot_len = new_seg.p->len;
 
+        struct tcp_seg **cur_seg = NULL;
+        if (pcb->unacked != NULL) {
+          cur_seg = &(pcb->unacked);
+        }
         for (int start = pbuf_chain_len; start > 0; start--) {
             struct tcp_seg *tmp_seg = start_seg;
             start_seg = start_seg->next;
@@ -1643,10 +1647,10 @@ tcp_output(struct tcp_pcb *pcb)
                     pcb->last_unacked = tmp_seg;
                     pcb->unacked = tmp_seg;
                     useg = tmp_seg;
+                    cur_seg = &(pcb->unacked);
                 } else {
                     if (TCP_SEQ_LT(lwip_ntohl(tmp_seg->tcphdr->seqno), lwip_ntohl(useg->tcphdr->seqno))) {
                         /* add segment to before tail of unacked list, keeping the list sorted */
-                        struct tcp_seg **cur_seg = &(pcb->unacked);
                         while (*cur_seg &&
                             TCP_SEQ_LT(lwip_ntohl((*cur_seg)->tcphdr->seqno), lwip_ntohl(tmp_seg->tcphdr->seqno)))     {
                             cur_seg = &((*cur_seg)->next );
@@ -2157,7 +2161,10 @@ tcp_rexmit(struct tcp_pcb *pcb)
   }
 
   seg = pcb->unacked;
+#if GAZELLE_ENABLE
+  cur_seg = &(pcb->unsent);
   while (seg) {
+#endif
     /* Give up if the segment is still referenced by the netif driver
       due to deferred transmission. */
     if (tcp_output_segment_busy(seg)) {
@@ -2174,7 +2181,9 @@ tcp_rexmit(struct tcp_pcb *pcb)
       pcb->last_unacked = pcb->unacked->next;
     pcb->unacked = pcb->unacked->next;
 
+#if !GAZELLE_ENABLE
     cur_seg = &(pcb->unsent);
+#endif
     while (*cur_seg &&
           TCP_SEQ_LT(lwip_ntohl((*cur_seg)->tcphdr->seqno), lwip_ntohl(seg->tcphdr->seqno))) {
       cur_seg = &((*cur_seg)->next);
@@ -2190,8 +2199,10 @@ tcp_rexmit(struct tcp_pcb *pcb)
     }
 #endif /* TCP_OVERSIZE */
 
+#if GAZELLE_ENABLE
     seg = pcb->unacked;
   }
+#endif
 
   if (pcb->nrtx < 0xFF) {
     ++pcb->nrtx;
