diff -ru lwip/src/core/mem.c lwip-patched/src/core/mem.c --- lwip/src/core/mem.c 2007-09-15 13:34:06.000000000 +0200 +++ lwip-patched/src/core/mem.c 2007-10-08 16:41:25.008750000 +0200 @@ -341,6 +341,9 @@ next = mem2->next; /* create new struct mem which is moved directly after the shrinked mem */ ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize; + if (lfree == mem2) { + lfree = (struct mem *)&ram[ptr2]; + } mem2 = (struct mem *)&ram[ptr2]; mem2->used = 0; /* restore the next pointer */