diff --git a/mongoose.c b/mongoose.c
index 5697d5ed548a9ca6c23134982b75fc3d2195abbb..8bc2546ba5cc71efe66243abbb0325be59e657d3 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -14313,6 +14313,7 @@ int mg_lwip_tcp_write(struct mg_connection *nc, const void *data,
                       uint16_t len) {
   struct mg_lwip_conn_state *cs = (struct mg_lwip_conn_state *) nc->sock;
   struct tcp_pcb *tpcb = cs->pcb.tcp;
+  if (tpcb == NULL) return -1;
   len = MIN(tpcb->mss, MIN(len, tpcb->snd_buf));
   if (len == 0) {
     DBG(("%p no buf avail %u %u %u %p %p", tpcb, tpcb->acked, tpcb->snd_buf,