When using dhcp, '/etc/init.d/net.eth0 stop' does not kill dhcpcd, and '/etc/init.d/net.eth0 start' does not work until dhcpcd is killed properly. The fix is however quite trivial, in the stop() function. /sbin/ifconfig ${IFACE} down &>/dev/null should be replaced with: if [ "$(eval echo \$\{iface_${IFACE}\})" != "dhcp" ] then /sbin/ifconfig ${IFACE} down &>/dev/null else /sbin/dhcpcd -k ${IFACE} &>/dev/null fi This corrects the problem, at least for me, and it seems like the real solution to me, but who knows ;)
Fixed on CVS, thanks!