+diff -ur busybox.old/networking/udhcp/dhcpc.c busybox.dev/networking/udhcp/dhcpc.c
+--- busybox.old/networking/udhcp/dhcpc.c 2006-11-10 00:17:26.000000000 +0100
++++ busybox.dev/networking/udhcp/dhcpc.c 2006-11-10 00:17:10.000000000 +0100
+@@ -330,7 +330,7 @@
+ /* timeout dropped to zero */
+ switch (state) {
+ case INIT_SELECTING:
+- if (packet_num < client_config.retries) {
++ if (!client_config.retries || (packet_num < client_config.retries)) {
+ if (packet_num == 0)
+ xid = random_xid();
+
+@@ -355,7 +355,7 @@
+ break;
+ case RENEW_REQUESTED:
+ case REQUESTING:
+- if (packet_num < client_config.retries) {
++ if (!client_config.retries || (packet_num < client_config.retries)) {
+ /* send request packet */
+ if (state == RENEW_REQUESTED)
+ send_renew(xid, server_addr, requested_ip); /* unicast */