diff --git a/networking/udhcp/ChangeLog b/networking/udhcp/ChangeLog
index 9c269d8..34cfe16 100644
--- a/networking/udhcp/ChangeLog
+++ b/networking/udhcp/ChangeLog
@@ -1,4 +1,7 @@
-0.9.8 (pending)
+0.9.8 (021031)
++ split up README files (me)
++ use /dev/urandom to seed xid's (instead of time(0)) (me)
++ fixed renew behavior (me)
 + udhcp now fits nicely into busybox
   (Glenn McGrath <bug1@optushome.com.au> as well as myself)
 + updated client manpage (me)
diff --git a/networking/udhcp/README b/networking/udhcp/README
index d3e5e3f..5f4bb78 100644
--- a/networking/udhcp/README
+++ b/networking/udhcp/README
@@ -5,155 +5,6 @@
 systems. It does however, strive to be fully functional, and RFC
 compliant.
 
-udhcp server (udhcpd)
---------------------
-
-The only command line argument to udhcpd is an optional specifed
-config file. If no config file is specified, udhcpd uses the default
-config file, /etc/udhcpd.conf. Ex:
-
-udhcpd /etc/udhcpd.eth1.conf
-
-The udhcp server employs a number of simple config files:
-
-udhcpd.leases
-------------
-
-The udhcpd.leases behavior is designed for an embedded system. The
-file is written either every auto_time seconds, or when a SIGUSR1
-is received (the auto_time timer restarts if a SIGUSR1 is received). 
-If you send a SIGTERM to udhcpd directly after a SIGUSR1, udhcpd will
-finish writing the leases file and wait for the aftermentioned script
-to be executed and finish before quiting, so you do not need to sleep
-between sending signals. When the file is written, a script can be
-optionally called to commit the file to flash. Lease times are stored
-in the file by time remaining in lease (for systems without clock
-that works when there is no power), or by the absolute time that it
-expires in seconds from epoch. In the remainig format, expired leases
-are stored as zero. The file is of the format:
-
-16 byte MAC
-4 byte ip address
-u32 expire time
-16 byte MAC
-4 byte ip address
-u32 expire time
-.
-etc.
-
-example: hexdump udhcpd.leases
-
-0000000 1000 c95a 27d9 0000 0000 0000 0000 0000
-0000010 a8c0 150a 0d00 2d29 5000 23fc 8566 0000
-0000020 0000 0000 0000 0000 a8c0 140a 0d00 4e29
-0000030
-
-
-udhcpd.conf
-----------
-
-The format is fairly simple, there is a sample file with all the
-available options and comments describing them in samples/udhcpd.conf
-
-
-udhcp client (udhcpc)
---------------------
-
-The udhcp client negotiates a lease with the DHCP server and notifies
-a set of scripts when a leases is obtained or lost. The command line
-options for the udhcp client are:
-
--c, --clientid=CLIENTID         Client identifier
--H, --hostname=HOSTNAME         Client hostname
--h,				Alias for -H
--f, --foreground                Do not fork after getting lease
--b, --background                Fork to background if lease cannot be
-                                immediately negotiated.
--i, --interface=INTERFACE       Interface to use (default: eth0)
--n, --now                       Exit with failure if lease cannot be
-                                immediately negotiated.
--p, --pidfile=file              Store process ID of daemon in file
--q, --quit                      Quit after obtaining lease
--r, --request=IP                IP address to request (default: none)
--s, --script=file               Run file at dhcp events (default:
-                                /usr/share/udhcpc/default.script)
--v, --version                   Display version
-
-If the requested IP address cannot be obtained, the client accepts the
-address that the server offers.
-
-When an event occurs, udhcpc calls the action script. The script by
-default is /usr/share/udhcpc/default.script but this can be changed via 
-the command line arguments. The three possible arguments to the script 
-are:
-
-	deconfig: This argument is used when udhcpc starts, and
-	when a leases is lost. The script should put the interface in an
-	up, but deconfigured state, ie: ifconfig $interface 0.0.0.0.
-	
-	bound: This argument is used when udhcpc moves from an
-	unbound, to a bound state. All of the paramaters are set in
-	enviromental variables, The script should configure the interface,
-	and set any other relavent parameters (default gateway, dns server, 
-	etc).
-	
-	renew: This argument is used when a DHCP lease is renewed. All of
-	the paramaters are set in enviromental variables. This argument is
-	used when the interface is already configured, so the IP address,
-	will not change, however, the other DHCP paramaters, such as the
-	default gateway, subnet mask, and dns server may change.
-
-	nak: This argument is used with udhcpc receives a NAK message.
-	The script with the deconfig argument will be called directly
-	afterwards, so no changes to the network interface are neccessary.
-	This hook is provided for purely informational purposes (the
-	message option may contain a reason for the NAK).
-
-The paramaters for enviromental variables are as follows:
-
-	$HOME		- The set $HOME env or "/"
-	$PATH		- the set $PATH env or "/bin:/usr/bin:/sbin:/usr/sbin"
-	$1		- What action the script should perform
-	interface	- The interface this was obtained on
-	ip		- The obtained IP
-	siaddr		- The bootp next server option
-	sname		- The bootp server name option
-	boot_file	- The bootp boot file option
-	subnet		- The assigend subnet mask
-	timezone	- Offset in seconds from UTC
-	router		- A list of routers
-	timesvr		- A list of time servers
-	namesvr		- A list of IEN 116 name servers
-	dns		- A list of DNS server
-	logsvr		- A list of MIT-LCS UDP log servers
-	cookiesvr	- A list of RFC 865 cookie servers
-	lprsvr		- A list of LPR servers
-	hostname	- The assigned hostname
-	bootsize	- The length in 512 octect blocks of the bootfile
-	domain		- The domain name of the network
-	swapsvr		- The IP address of the client's swap server
-	rootpath	- The path name of the client's root disk
-	ipttl		- The TTL to use for this network
-	mtu		- The MTU to use for this network
-	broadcast	- The broadcast address for this network
-	ntpsrv		- A list of NTP servers
-	wins		- A list of WINS servers
-	lease		- The lease time, in seconds
-	dhcptype	- DHCP message type (safely ignored)
-	serverid	- The IP of the server
-	message		- Reason for a DHCPNAK
-	tftp		- The TFTP server name
-	bootfile	- The bootfile name
-
-additional options are easily added in options.c.
-	
-udhcpc also responds to SIGUSR1 and SIGUSR2. SIGUSR1 will force a renew state,
-and SIGUSR2 will force a release of the current lease, and cause udhcpc to
-go into an inactive state (until it is killed, or receives a SIGUSR1). You do
-not need to sleep between sending signals, as signals received are processed
-sequencially in the order they are received.
-
-
 
 compile time options
 -------------------
@@ -185,6 +36,7 @@
 
 	code: The DHCP code for this option
 
+
 busybox drop-in
 --------------
 udhcp is now a drop-in component for busybox (http://busybox.net).
@@ -195,3 +47,4 @@
 
 The only two files udhcp does not provide are config.in and
 Makefile.in, so these may need to be updated from time to time.
+
diff --git a/networking/udhcp/README.dumpleases b/networking/udhcp/README.dumpleases
new file mode 100644
index 0000000..6367710
--- /dev/null
+++ b/networking/udhcp/README.dumpleases
@@ -0,0 +1,17 @@
+udhcp lease dump (dumpleases)
+----------------------------
+
+dumpleases displays the leases written out by the udhcpd server. Lease
+times are stored in the file by time remaining in lease (for systems
+without clock that works when there is no power), or by the absolute
+time that it expires in seconds from epoch. dumpleases accepts the
+following command line options:
+
+-a, --absolute		Interpret lease times as expiration time.
+-r, --remaining		Interpret lease times as remaining time.
+-f, --file=FILE		Read lease information from FILE.
+-h, --help 		Display help.
+
+Note that if udhcpd has not written a leases file recently, the output
+of may not be up to date.
+
diff --git a/networking/udhcp/README.udhcpc b/networking/udhcp/README.udhcpc
new file mode 100644
index 0000000..3591605
--- /dev/null
+++ b/networking/udhcp/README.udhcpc
@@ -0,0 +1,139 @@
+udhcp client (udhcpc)
+--------------------
+
+The udhcp client negotiates a lease with the DHCP server and notifies
+a set of scripts when a leases is obtained or lost.
+
+
+command line options
+-------------------
+
+The command line options for the udhcp client are:
+
+-c, --clientid=CLIENTID         Client identifier
+-H, --hostname=HOSTNAME         Client hostname
+-h,				Alias for -H
+-f, --foreground                Do not fork after getting lease
+-b, --background                Fork to background if lease cannot be
+                                immediately negotiated.
+-i, --interface=INTERFACE       Interface to use (default: eth0)
+-n, --now                       Exit with failure if lease cannot be
+                                immediately negotiated.
+-p, --pidfile=file              Store process ID of daemon in file
+-q, --quit                      Quit after obtaining lease
+-r, --request=IP                IP address to request (default: none)
+-s, --script=file               Run file at dhcp events (default:
+                                /usr/share/udhcpc/default.script)
+-v, --version                   Display version
+
+
+If the requested IP address cannot be obtained, the client accepts the
+address that the server offers.
+
+
+udhcp client scripts
+-------------------
+
+When an event occurs, udhcpc calls the action script. The script by
+default is /usr/share/udhcpc/default.script but this can be changed via 
+the command line arguments. The three possible arguments to the script 
+are:
+
+	deconfig: This argument is used when udhcpc starts, and
+	when a leases is lost. The script should put the interface in an
+	up, but deconfigured state, ie: ifconfig $interface 0.0.0.0.
+	
+	bound: This argument is used when udhcpc moves from an
+	unbound, to a bound state. All of the paramaters are set in
+	enviromental variables, The script should configure the interface,
+	and set any other relavent parameters (default gateway, dns server, 
+	etc).
+	
+	renew: This argument is used when a DHCP lease is renewed. All of
+	the paramaters are set in enviromental variables. This argument is
+	used when the interface is already configured, so the IP address,
+	will not change, however, the other DHCP paramaters, such as the
+	default gateway, subnet mask, and dns server may change.
+
+	nak: This argument is used with udhcpc receives a NAK message.
+	The script with the deconfig argument will be called directly
+	afterwards, so no changes to the network interface are neccessary.
+	This hook is provided for purely informational purposes (the
+	message option may contain a reason for the NAK).
+
+The paramaters for enviromental variables are as follows:
+
+	$HOME		- The set $HOME env or "/"
+	$PATH		- the set $PATH env or "/bin:/usr/bin:/sbin:/usr/sbin"
+	$1		- What action the script should perform
+	interface	- The interface this was obtained on
+	ip		- The obtained IP
+	siaddr		- The bootp next server option
+	sname		- The bootp server name option
+	boot_file	- The bootp boot file option
+	subnet		- The assigend subnet mask
+	timezone	- Offset in seconds from UTC
+	router		- A list of routers
+	timesvr		- A list of time servers
+	namesvr		- A list of IEN 116 name servers
+	dns		- A list of DNS server
+	logsvr		- A list of MIT-LCS UDP log servers
+	cookiesvr	- A list of RFC 865 cookie servers
+	lprsvr		- A list of LPR servers
+	hostname	- The assigned hostname
+	bootsize	- The length in 512 octect blocks of the bootfile
+	domain		- The domain name of the network
+	swapsvr		- The IP address of the client's swap server
+	rootpath	- The path name of the client's root disk
+	ipttl		- The TTL to use for this network
+	mtu		- The MTU to use for this network
+	broadcast	- The broadcast address for this network
+	ntpsrv		- A list of NTP servers
+	wins		- A list of WINS servers
+	lease		- The lease time, in seconds
+	dhcptype	- DHCP message type (safely ignored)
+	serverid	- The IP of the server
+	message		- Reason for a DHCPNAK
+	tftp		- The TFTP server name
+	bootfile	- The bootfile name
+
+additional options are easily added in options.c.
+
+
+note on udhcpc's random seed
+---------------------------
+
+udhcpc will seed its random number generator (used for generating xid's)
+by reading /dev/urandom. If you have a lot of embedded systems on the same
+network, with no entropy, you can either seed /dev/urandom by a method of
+your own, or doing the following on startup:
+
+ifconfig eth0 > /dev/urandom
+
+in order to seed /dev/urandom with some data (mac address) unique to your
+system. If reading /dev/urandom fails, udhcpc will fall back to its old
+behavior of seeding with time(0).
+
+
+signals accepted by udhcpc
+-------------------------
+
+udhcpc also responds to SIGUSR1 and SIGUSR2. SIGUSR1 will force a renew state,
+and SIGUSR2 will force a release of the current lease, and cause udhcpc to
+go into an inactive state (until it is killed, or receives a SIGUSR1). You do
+not need to sleep between sending signals, as signals received are processed
+sequencially in the order they are received.
+
+
+compile time options
+-------------------
+
+options.c contains a set of dhcp options for the client:
+
+	name[10]: The name of the option as it will appear in scripts
+	
+	flags: The type of option, as well as if it will be requested
+	by the client (OPTION_REQ)
+
+	code: The DHCP code for this option
+
diff --git a/networking/udhcp/README.udhcpd b/networking/udhcp/README.udhcpd
new file mode 100644
index 0000000..bc6137d
--- /dev/null
+++ b/networking/udhcp/README.udhcpd
@@ -0,0 +1,59 @@
+udhcp server (udhcpd)
+--------------------
+
+The only command line argument to udhcpd is an optional specifed
+config file. If no config file is specified, udhcpd uses the default
+config file, /etc/udhcpd.conf. Ex:
+
+udhcpd /etc/udhcpd.eth1.conf
+
+The udhcp server employs a number of simple config files:
+
+udhcpd.leases
+------------
+
+The udhcpd.leases behavior is designed for an embedded system. The
+file is written either every auto_time seconds, or when a SIGUSR1
+is received (the auto_time timer restarts if a SIGUSR1 is received). 
+If you send a SIGTERM to udhcpd directly after a SIGUSR1, udhcpd will
+finish writing the leases file and wait for the aftermentioned script
+to be executed and finish before quiting, so you do not need to sleep
+between sending signals. When the file is written, a script can be
+optionally called to commit the file to flash. Lease times are stored
+in the file by time remaining in lease (for systems without clock
+that works when there is no power), or by the absolute time that it
+expires in seconds from epoch. In the remaining format, expired leases
+are stored as zero. The file is of the format:
+
+16 byte MAC
+4 byte ip address
+u32 expire time
+16 byte MAC
+4 byte ip address
+u32 expire time
+.
+etc.
+
+example: hexdump udhcpd.leases
+
+0000000 1000 c95a 27d9 0000 0000 0000 0000 0000
+0000010 a8c0 150a 0d00 2d29 5000 23fc 8566 0000
+0000020 0000 0000 0000 0000 a8c0 140a 0d00 4e29
+0000030
+
+
+udhcpd.conf
+----------
+
+The format is fairly simple, there is a sample file with all the
+available options and comments describing them in samples/udhcpd.conf
+
+compile time options
+-------------------
+	
+dhcpd.h contains the other two compile time options:
+	
+	LEASE_TIME: The default lease time if not specified in the config
+	file.
+	
+	DHCPD_CONFIG_FILE: The defualt config file to use.
diff --git a/networking/udhcp/TODO b/networking/udhcp/TODO
index 47e4512..f88694a 100644
--- a/networking/udhcp/TODO
+++ b/networking/udhcp/TODO
@@ -1,17 +1,14 @@
 TODO
 ----
++ Integrade README.*'s with manpages
++ using time(0) breaks if the system clock changes, find a portable solution
 + make failure of reading functions revert to previous value, not the default
 + sanity code for option[OPT_LEN]
 + fix aliasing (ie: eth0:0)
-+ DONE: Make sure get_raw_packet only accepts packets on the specified interface
 + better standard linux distro support
-+ DONE: make config file a command line option for server
-+ IMPLEMENTED: make forking a command line option
 + make sure packet generation works on a wide varitey of arches
 + Interoperability testing
 + Hooks within the DHCP server
 + Additional bootp support in client/server
 + Make serverid option in server configurable
-+ DONE: cause client to generate DHCP_VENDOR option
 + Possibly add failure message to DHCP NAK
-+ Possibly log DHCP NAK failure message in client
\ No newline at end of file
diff --git a/networking/udhcp/clientpacket.c b/networking/udhcp/clientpacket.c
index ecbd795..86faec9 100644
--- a/networking/udhcp/clientpacket.c
+++ b/networking/udhcp/clientpacket.c
@@ -35,6 +35,10 @@
 #include <unistd.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
 
 
 #include "dhcpd.h"
@@ -49,7 +53,17 @@
 {
 	static int initialized;
 	if (!initialized) {
-		srand(time(0));
+		int fd;
+		unsigned long seed;
+
+		fd = open("/dev/urandom", 0);
+		if (fd < 0 || read(fd, &seed, sizeof(seed)) < 0) {
+			LOG(LOG_WARNING, "Could not load seed from /dev/urandom: %s",
+				strerror(errno));
+			seed = time(0);
+		}
+		if (fd >= 0) close(fd);
+		srand(seed);
 		initialized++;
 	}
 	return rand();
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index ae40ec9..295486c 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -118,14 +118,14 @@
 {
 	LOG(LOG_INFO, "Performing a DHCP renew");
 	switch (state) {
-	case RENEWING:
-		run_script(NULL, "deconfig");
 	case BOUND:
-	case REBINDING:
 		change_mode(LISTEN_KERNEL);
+	case RENEWING:
+	case REBINDING:
 		state = RENEW_REQUESTED;
 		break;
-	case RENEW_REQUESTED:
+	case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
+		run_script(NULL, "deconfig");
 	case REQUESTING:
 	case RELEASED:
 		change_mode(LISTEN_RAW);
@@ -387,6 +387,7 @@
 					packet_num++;
 				} else {
 					/* timed out, go back to init state */
+					if (state == RENEW_REQUESTED) run_script(NULL, "deconfig");
 					state = INIT_SELECTING;
 					timeout = now;
 					packet_num = 0;
