diff --git a/networking/udhcp/arpping.c b/networking/udhcp/arpping.c
index ab4c6d2..7cc2be4 100644
--- a/networking/udhcp/arpping.c
+++ b/networking/udhcp/arpping.c
@@ -79,7 +79,7 @@
 
 	/* wait arp reply, and check it */
 	tm.tv_usec = 0;
-	time(&prevTime);
+	prevTime = uptime();
 	while (timeout > 0) {
 		FD_ZERO(&fdset);
 		FD_SET(s, &fdset);
@@ -97,8 +97,8 @@
 				break;
 			}
 		}
-		timeout -= time(NULL) - prevTime;
-		time(&prevTime);
+		timeout -= uptime() - prevTime;
+		prevTime = uptime();
 	}
 	close(s);
 	DEBUG(LOG_INFO, "%salid arp replies for this address", rv ? "No v" : "V");	
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index 4f856ee..ce76c51 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -29,6 +29,7 @@
 #include <signal.h>
 #include <paths.h>
 #include <sys/socket.h>
+#include <sys/sysinfo.h>
 #include <stdarg.h>
 
 #include "common.h"
@@ -37,6 +38,14 @@
 
 static int daemonized;
 
+long uptime(void)
+{
+	struct sysinfo info;
+	sysinfo(&info);
+	printf("uptime %d\n", info.uptime);
+	return info.uptime;
+}
+
 
 /*
  * This function makes sure our first socket calls
diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h
index cdc51cf..ca19a24 100644
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -39,6 +39,7 @@
 #include <syslog.h>
 #endif
 
+long uptime(void);
 void background(const char *pidfile);
 void start_log_and_pid(const char *client_server, const char *pidfile);
 void background(const char *pidfile);
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index dda6789..449b517 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -188,7 +188,7 @@
 	int c, len;
 	struct dhcpMessage packet;
 	struct in_addr temp_addr;
-	time_t now;
+	long now;
 	int max_fd;
 	int sig;
 
@@ -290,7 +290,7 @@
 
 	for (;;) {
 
-		tv.tv_sec = timeout - time(0);
+		tv.tv_sec = timeout - uptime();
 		tv.tv_usec = 0;
 
 		if (listen_mode != LISTEN_NONE && fd < 0) {
@@ -310,7 +310,7 @@
 			retval = select(max_fd + 1, &rfds, NULL, NULL, &tv);
 		} else retval = 0; /* If we already timed out, fall through */
 
-		now = time(0);
+		now = uptime();
 		if (retval == 0) {
 			/* timeout dropped to zero */
 			switch (state) {
