Index: trunk/Sources/ThirdParty/lwIP/src/core/ipv4/dhcp.c =================================================================== --- trunk/Sources/ThirdParty/lwIP/src/core/ipv4/dhcp.c (revision 3224) +++ trunk/Sources/ThirdParty/lwIP/src/core/ipv4/dhcp.c (revision 3225) @@ -303,6 +303,8 @@ struct dhcp *dhcp = netif_dhcp_data(netif); u16_t msecs; + LWIP_ASSERT("DHCP should be enabled at this point, but it is not!", (dhcp != NULL) && (dhcp->state != DHCP_STATE_OFF)); + switch (state) { case ACD_IP_OK: dhcp_bind(netif); @@ -1347,6 +1349,10 @@ netif_set_addr(netif, IP4_ADDR_ANY4, IP4_ADDR_ANY4, IP4_ADDR_ANY4); } +#if LWIP_DHCP_DOES_ACD_CHECK + /* stop acd because we may be in checking state and the callback would trigger a bind */ + acd_stop(&dhcp->acd); +#endif dhcp_set_state(dhcp, DHCP_STATE_OFF); if (dhcp->pcb_allocated != 0) {