diff --git a/Changelog b/Changelog
index 7e09f67..721fc82 100644
--- a/Changelog
+++ b/Changelog
@@ -1,675 +1,1281 @@
 ---------------------
-PatchSet 4304 
-Date: 2004/07/26 11:45:25
+PatchSet 4347 
+Date: 2004/08/16 10:29:28
 Author: andersen
 Branch: HEAD
-Tag: (none) 
-Log:
-Make certain that udhcp shuts down the interface
-
-Members: 
-	networking/ifupdown.c:1.43->1.44 
-
----------------------
-PatchSet 4305 
-Date: 2004/07/26 11:45:47
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-bump version to -rc2
-
-Members: 
-	Rules.mak:1.33->1.34 
-
----------------------
-PatchSet 4306 
-Date: 2004/07/26 11:46:50
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-oops
-
-Members: 
-	networking/ifupdown.c:1.44->1.45 
-
----------------------
-PatchSet 4307 
-Date: 2004/07/26 12:05:12
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-YAEGASHI Takeshi writes:
-
-Hi,
-
-With the following /etc/fstab (any two or more lines of nfs), mount -a
--t nfs causes a segmentation faults.
-
-server:/exports/aaa /mnt/aaa nfs defaults 0 0
-server:/exprots/bbb /mnt/bbb nfs defaults 0 0
-
-In util-linux/nfsmount.c, it overwrites malloc'ed pointer *mount_opts
-with a static pointer.  With this patch it does proper memory realloc
-and data copy instead.
-
-Members: 
-	util-linux/nfsmount.c:1.27->1.28 
-
----------------------
-PatchSet 4308 
-Date: 2004/07/26 12:05:44
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-Make certain that udhcp shuts down the interface
-
-Members: 
-	networking/ifupdown.c:1.45->1.46 
-
----------------------
-PatchSet 4309 
-Date: 2004/07/26 12:06:19
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-Allow hex escape sequences
-
-Members: 
-	libbb/process_escape_sequence.c:1.6->1.7 
-
----------------------
-PatchSet 4310 
-Date: 2004/07/26 12:07:01
-Author: andersen
-Branch: HEAD
-Tag: (none) 
+Tag: busybox_1_00_rc3 
 Log:
 Prepare for release
 
 Members: 
-	Changelog:1.293->1.294 
-	Rules.mak:1.34->1.35 
-	docs/busybox.net/news.html:1.19->1.20 
+	Changelog:1.294->1.295 
+	docs/busybox_header.pod:1.17->1.18 
+	docs/busybox.net/news.html:1.21->1.22 
+	docs/busybox.net/screenshot.html:1.11->1.12 
 
 ---------------------
-PatchSet 4311 
-Date: 2004/07/26 12:11:32
+PatchSet 4348 
+Date: 2004/08/18 17:57:16
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-bother.  unrevert my fix.
+Fixup 'dc' usage
 
 Members: 
-	libbb/process_escape_sequence.c:1.7->1.8 
-	networking/ifupdown.c:1.46->1.47 
+	include/usage.h:1.218->1.219 
 
 ---------------------
-PatchSet 4312 
-Date: 2004/07/26 12:12:06
+PatchSet 4349 
+Date: 2004/08/19 18:22:13
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-bump version to -rc2
+Patch from Vladimir N. Oleynik:
+
+On Wed Aug 18, 2004 at 06:52:57PM +0800, Matt Johnston wrote:
+> I've come across some strange-seeming behaviour when running programs
+> under Busybox (1.0.0-rc3) ash. If the child process sets stdin to be
+> non-blocking and then exits, the parent ash will also exit. A quick strace
+> shows that a subsequent read() from stdin returns EAGAIN (as would be
+> expected):
+
+Thanks!
+Patch attached.
+
+
+--w
+vodz
 
 Members: 
-	Rules.mak:1.35->1.36 
+	shell/ash.c:1.104->1.105 
+	shell/cmdedit.c:1.92->1.93 
 
 ---------------------
-PatchSet 4313 
-Date: 2004/07/26 12:22:33
-Author: andersen
-Branch: HEAD
-Tag: busybox_1_00_rc2 
-Log:
-add missing ;
-
-Members: 
-	networking/ifupdown.c:1.47->1.48 
-
----------------------
-PatchSet 4314 
-Date: 2004/07/26 18:57:49
-Author: sandman
-Branch: HEAD
-Tag: (none) 
-Log:
-document stuff I have done
-
-Members: 
-	AUTHORS:1.45->1.46 
-
----------------------
-PatchSet 4315 
-Date: 2004/07/27 16:45:46
+PatchSet 4350 
+Date: 2004/08/19 18:25:02
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Felipe Kellermann noticed a missing `break'.
+Patch from Tito documenting the '-q' option
 
 Members: 
-	libbb/process_escape_sequence.c:1.8->1.9 
+	include/usage.h:1.219->1.220 
 
 ---------------------
-PatchSet 4316 
-Date: 2004/07/28 19:15:04
+PatchSet 4351 
+Date: 2004/08/19 18:26:26
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Thanks to Ken Roberts, fix the slackware url
+Patch from Tito adding support for '-q'
 
 Members: 
-	docs/busybox.net/products.html:1.11->1.12 
+	procps/kill.c:1.52->1.53 
 
 ---------------------
-PatchSet 4317 
-Date: 2004/07/29 23:15:16
-Author: mjn3
-Branch: HEAD
-Tag: (none) 
-Log:
-Clean up hex escape support.
-
-Members: 
-	libbb/process_escape_sequence.c:1.9->1.10 
-
----------------------
-PatchSet 4318 
-Date: 2004/07/30 14:31:01
+PatchSet 4352 
+Date: 2004/08/19 18:30:31
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-As noted by Eric Spakman, calling static_down() and then calling
-bootp_down() seems redundant, esp since bootp_down was a subset
-of static_down, so just use that...
+Patch from Mike Castle to cleanup some modutils issues, in
+particular making alias support work better.
 
 Members: 
-	networking/ifupdown.c:1.48->1.49 
+	modutils/modprobe.c:1.39->1.40 
 
 ---------------------
-PatchSet 4319 
-Date: 2004/07/30 14:36:37
+PatchSet 4353 
+Date: 2004/08/19 19:15:06
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Fix up brain damage with the way major and minor are used to
-create a dev_t
-
-Members: 
-	miscutils/makedevs.c:1.19->1.20 
-
----------------------
-PatchSet 4320 
-Date: 2004/07/30 14:45:08
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-use SIGTERM to kill off udhcpd, not SIGKILL
-
-Members: 
-	networking/ifupdown.c:1.49->1.50 
-
----------------------
-PatchSet 4321 
-Date: 2004/07/30 17:24:46
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-Fixup getty, login, etc so the utmp and wtmp are updated, allowing
-the 'who' and 'last' applets among other things to work as expected.
+regularly update the status line display
  -Erik
 
 Members: 
-	coreutils/Config.in:1.24->1.25 
-	loginutils/Config.in:1.7->1.8 
-	loginutils/getty.c:1.11->1.12 
-	loginutils/login.c:1.17->1.18 
-	miscutils/Config.in:1.17->1.18 
+	editors/vi.c:1.37->1.38 
 
 ---------------------
-PatchSet 4322 
-Date: 2004/07/30 17:39:08
+PatchSet 4354 
+Date: 2004/08/19 19:17:30
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Umm.  Not guilty by reason of insanity.
+Patch from Rodney Radford adding x86_64 support.
+
+Members: 
+	modutils/insmod.c:1.122->1.123 
+
+---------------------
+PatchSet 4355 
+Date: 2004/08/25 02:02:19
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from Manousaridis Angelos to cleanup stale file descriptors, it was preventing unmounting an initial filesystem.
+
+Members: 
+	loginutils/getty.c:1.13->1.14 
+	loginutils/login.c:1.19->1.20 
+
+---------------------
+PatchSet 4356 
+Date: 2004/08/26 21:45:21
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Felipe Kellermann writes:
+
+Unfortunatelly I've not followed the last two or three weeks commits (new
+semester started and so now I rarely have time to fix my personal bridge)
+but tonight I synched my tree and immediately noticed a rather nasty bug!
+
+[Using libbb/interface.c:1.24]
+# grep eth0 /proc/net/dev | xargs
+eth0:311708397 237346 1670 0 1789 1670 0 0 22580308 120297 0 0 0 102 0 0
+
+# ifconfig eth0
+eth0      Link encap:Ethernet  HWaddr 00:20:AF:7C:EA:B7
+          inet addr:10.0.0.1  Bcast:10.0.0.127  Mask:255.255.255.128
+          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
+          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
+          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
+          collisions:0 txqueuelen:1000
+          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
+          Interrupt:5 Base address:0x320
+
+
+All values `ifconfig' is showing are `zeroed' -- I quickly looked at the
+last commits I missed and noticed that there were a commit relating to
+ifconfig, libbb/interface.c:1.23->1.24 (PatchSet 4338).
+
+I've reversed the patch and now everything is working again.  I compared
+the get_name's return values from the 1.23 and 1.24 and quickly noticed
+that the new revision is leaving `p' right on the sep while the rev 1.23
+was leaving it right on the starting of the values...
+
+1-line, 1/3-minute patch attached  :-)
+
+Members: 
+	libbb/interface.c:1.24->1.25 
+
+---------------------
+PatchSet 4357 
+Date: 2004/08/26 22:18:56
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Tito writes:
+
+Hi,
+I've spent the half night staring at the devilish  my_getpwuid and my_getgrgid functions
+trying to find out a way to avoid actual and future potential buffer overflow problems
+without breaking existing code.
+Finally I've  found a not intrusive way to do this that surely doesn't break existing code
+and fixes a couple of problems too.
+The attached patch:
+1) changes the behaviour of my_getpwuid and my_getgrgid to avoid potetntial buffer overflows
+2) fixes all occurences of this function calls in tar.c , id.c , ls.c, whoami.c, logger.c, libbb.h.
+3) The behaviour of tar, ls and  logger is unchanged.
+4) The behavior of ps with somewhat longer usernames messing up output is fixed.
+5) The only bigger change was the increasing of size of the buffers in id.c to avoid
+     false negatives (unknown user: xxxxxx) with usernames longer than 8 chars.
+     The value i used ( 32 chars ) was taken from the tar header ( see gname and uname).
+     Maybe this buffers can be reduced a bit  ( to 16 or whatever ), this is up to you.
+6) The increase of size of the binary is not so dramatic:
+     size busybox
+       text    data     bss     dec     hex filename
+     239568    2300   36816  278684   4409c busybox
+    size busybox_fixed
+       text    data     bss     dec     hex filename
+     239616    2300   36816  278732   440cc busybox
+7) The behaviour of whoami changed:
+    actually it  prints out an username cut down to the size of the buffer.
+    This could be fixed by increasing the size of the buffer as in id.c or
+    avoid the use of my_getpwuid and use getpwuid directly instead.
+    Maybe this colud be also remain unchanged......
+
+Please apply if you think it is ok to do so.
+The diff applies on today's cvs tarball (2004-08-25).
+Thanks in advance,
+Ciao,
+Tito
+
+Members: 
+	archival/tar.c:1.194->1.195 
+	coreutils/id.c:1.24->1.25 
+	coreutils/ls.c:1.110->1.111 
+	coreutils/whoami.c:1.21->1.22 
+	include/libbb.h:1.133->1.134 
+	libbb/my_getgrgid.c:1.7->1.8 
+	libbb/my_getpwuid.c:1.7->1.8 
+	libbb/procps.c:1.13->1.14 
+	sysklogd/logger.c:1.39->1.40 
+
+---------------------
+PatchSet 4358 
+Date: 2004/08/26 22:22:50
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Vladimir N. Oleynik writes:
+
+Ming-Ching,
+
+>>No. Here there are no mistakes.
+>>You using POST metod.
+>>For get data you should read from stdin CONTENT_LENGTH bytes.
+
+>Hower as I posted a little while ago, there is indeed a bug
+>in POST method if the CONTENT_LENGTH is bigger
+>than sizeof(wbuf[128]). So if your CGI script is expecting to
+>read the full CONTENT_LENGTH, it might block forever,
+>because it will only transfer sizeof(wbuf) to the CGI.
+
+Ok, Ok. I should find time to understand with a problem.
+Try attached patch.
+
+
+--w
+vodz
+
+Members: 
+	networking/httpd.c:1.26->1.27 
+
+---------------------
+PatchSet 4359 
+Date: 2004/08/26 22:26:26
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Save a line or two
+
+Members: 
+	loginutils/getty.c:1.14->1.15 
+	loginutils/login.c:1.20->1.21 
+
+---------------------
+PatchSet 4360 
+Date: 2004/08/26 22:36:02
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Tito writes:
+
+Hi,
+I've fixed also the issue of whoami cutting down usernames.
+This time I cannot send a diff because i don't know if my previous patches will be applied
+or not, so I send in the whole file.
+The changes I've made don't affect size but ensure that usernames of whatever lenght
+are correctly displayed.
+root@localhost:/dev/pts/3:/root/Desktop/busybox/coreutils# size whoami_orig.o
+   text    data     bss     dec     hex filename
+    102       0       0     102      66 whoami_orig.o
+root@localhost:/dev/pts/3:/root/Desktop/busybox/coreutils# size whoami.o
+   text    data     bss     dec     hex filename
+     93       0       0      93      5d whoami.o
+
+This should be applied even if the other patches aren't as this matches the behaviour of the  GNU whoami.
+
+Thanks in advance,
+Ciao,
+Tito
+
+Members: 
+	coreutils/whoami.c:1.22->1.23 
+
+---------------------
+PatchSet 4361 
+Date: 2004/08/26 23:01:34
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+The login applet should always be setuid root
+
+Members: 
+	include/applets.h:1.114->1.115 
+
+---------------------
+PatchSet 4362 
+Date: 2004/08/26 23:13:00
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Improve the setuid situation a bit, and make it more apparent
+when people really ought to make busybox setuid root.
  -Erik
 
 Members: 
-	loginutils/getty.c:1.12->1.13 
-	loginutils/login.c:1.18->1.19 
+	Makefile:1.296->1.297 
+	loginutils/Config.in:1.8->1.9 
+	miscutils/Config.in:1.18->1.19 
 
 ---------------------
-PatchSet 4323 
-Date: 2004/07/30 17:48:21
+PatchSet 4363 
+Date: 2004/08/26 23:15:29
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Fix incorrect arguments being passed to mknod
+Togg writes:
+
+Syslogd wont start if remote-logging is enabled and the connection to the
+remote-log server is not possible on syslogd startup.
+
+I found a patch somewhere which works like a charm. It uses sendto() which
+seems more reliable for this issue.
+
+Please see attached patch. Many people will be more happy with this included
+I think.
+
+Regards,
+Togg
 
 Members: 
-	miscutils/makedevs.c:1.20->1.21 
+	sysklogd/syslogd.c:1.113->1.114 
 
 ---------------------
-PatchSet 4324 
-Date: 2004/07/30 23:52:08
+PatchSet 4364 
+Date: 2004/08/27 19:55:28
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Simon Poole reports that awk segfaults when environment variables
-with no value exist, i.e.
-
-	$ export BOB=''
-	% ./busybox awk
-	Segmentation fault
-
-This patch teaches awk to not blow chunks on empty env variables.
- -Erik
+Quiet a few warnings
 
 Members: 
-	editors/awk.c:1.9->1.10 
+	init/mesg.c:1.2->1.3 
+	shell/msh.c:1.20->1.21 
 
 ---------------------
-PatchSet 4325 
-Date: 2004/08/01 18:54:45
+PatchSet 4365 
+Date: 2004/08/28 00:43:05
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-fixup cut-n-paste problem
+Fixup some warnings
 
 Members: 
-	docs/busybox.net/news.html:1.20->1.21 
+	archival/bunzip2.c:1.19->1.20 
+	archival/libunarchive/decompress_bunzip2.c:1.13->1.14 
+	coreutils/uniq.c:1.21->1.22 
+	modutils/insmod.c:1.123->1.124 
+	networking/ipcalc.c:1.10->1.11 
+	util-linux/mkfs_minix.c:1.42->1.43 
 
 ---------------------
-PatchSet 4326 
-Date: 2004/08/03 00:14:01
+PatchSet 4366 
+Date: 2004/09/02 22:21:39
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Tito, farmatito at tiscali dot it writes:
+Tito writes:
+
+Hi Erik,
+Hi to all,
+This is part five of the my_get*id story.
+I've tweaked a bit this two functions to make them more flexible,
+but this changes will not affect existing code.
+Now they work so:
+1) my_getpwuid( char *user, uid_t uid, int bufsize)
+
+   if bufsize is > 0 char *user cannot be set to NULL
+                     on success username is written on static allocated buffer
+                     on failure uid as string is written to buffer and NULL is returned
+   if bufsize is = 0 char *user can be set to NULL
+                     on success username is returned
+                     on failure NULL is returned
+   if bufsize is < 0 char *user can be set to NULL
+                     on success username is returned
+                     on failure an error message is printed and the program exits
+
+  2) 1) my_getgrgid( char *group, uid_t uid, int bufsize)
+
+   if bufsize is > 0 char *group cannot be set to NULL
+                     on success groupname is written on static allocated buffer
+                     on failure gid as string is written to buffer and NULL is returned
+   if bufsize is = 0 char *group can be set to NULL
+                     on success groupname is returned
+                     on failure NULL is returned
+   if bufsize is < 0 char *group can be set to nULL
+                     on success groupname is returned
+                     on failure an error message is printed and the program exits
+
+This changes were needed mainly for my new id applet.
+It is somewhat bigger then the previous but matches the behaviour of GNU id
+and is capable to handle usernames of whatever length.
+BTW: at a first look it seems to me that it will integrate well (with just a few changes)
+with the pending patch  in patches/id_groups_alias.patch.
+The increase in size is balanced by the removal of my_getpwnamegid.c
+from libbb as this was used only in previous id applet and by size optimizations
+made possible in whoami.c and in passwd.c.
+I know that we are in feature freeze but I think that i've tested it enough
+(at least I hope so.......).
+
+Members: 
+	coreutils/id.c:1.25->1.26 
+	coreutils/whoami.c:1.23->1.24 
+	include/libbb.h:1.134->1.135 
+	libbb/Makefile.in:1.36->1.37 
+	libbb/my_getgrgid.c:1.8->1.9 
+	libbb/my_getpwuid.c:1.8->1.9 
+	loginutils/passwd.c:1.7->1.8 
+
+---------------------
+PatchSet 4367 
+Date: 2004/09/02 22:22:16
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Tito writes:
+
+The second patch contains:
+1) a size optimization for adduser.c
+2) removes a warning about an unused variable in syslogd.c if CONFIG_FEATURE_REMOTE_LOG is not set
+3)cosmetic fixes for addgroup_full_usage and adduser_full_usage
+
+Ciao,
+Tito
+
+Members: 
+	include/usage.h:1.220->1.221 
+	loginutils/adduser.c:1.10->1.11 
+	sysklogd/syslogd.c:1.114->1.115 
+
+---------------------
+PatchSet 4368 
+Date: 2004/09/02 23:03:24
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Based on patches from Mike Frysinger, add insmod support for
+sparc and ia64 (itanium).
+
+Also, reorganize the insmod architecture support code to be
+alphasorted and less messy.
+
+Update the readme to list current insmod arch support.
+
+Members: 
+	README:1.35->1.36 
+	modutils/insmod.c:1.124->1.125 
+
+---------------------
+PatchSet 4369 
+Date: 2004/09/02 23:11:52
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+No longer needed
+
+Members: 
+	libbb/my_getpwnamegid.c:1.7->1.8(DEAD) 
+	patches/id_groups_alias.patch:1.1->1.2(DEAD) 
+
+---------------------
+PatchSet 4370 
+Date: 2004/09/02 23:13:10
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Jonas Holmberg from axis dot com writes:
+
+This patch makes msh handle variable expansion within backticks more
+correctly.
+
+Current behaviour (wrong):
+--------------------------
+
+BusyBox v1.00-rc3 (2004.08.26-11:51+0000) Built-in shell (msh)
+Enter 'help' for a list of built-in commands.
+
+$ A='`echo hello`'
+$ echo $A
+`echo hello`
+$ echo `echo $A`
+hello
+$
+
+
+New behaviour (correct):
+------------------------
+
+BusyBox v1.00-rc3 (2004.08.26-11:51+0000) Built-in shell (msh)
+Enter 'help' for a list of built-in commands.
+
+$ A='`echo hello`'
+$ echo $A
+`echo hello`
+$ echo `echo $A`
+`echo hello`
+$
+
+The current behaviour (wrong according to standards) was actually my
+fault. msh handles backticks by executing a subshell (which makes it
+work on MMU-less systems). Executing a subshell makes it hard to only
+expand variables once in the parent. Therefore I export all variables
+that will be expanded within the backticks and let the subshell handle
+the expansion instead.
+
+The bug was found while searching for security leaks in CGI-scripts.
+Current behaviour of msh makes it easy to expand backticks by mistake
+in $QUERY_STRING. I recommend appling the patch before release of bb
+1.00.
+
+/Jonas
+
+Members: 
+	shell/msh.c:1.21->1.22 
+
+---------------------
+PatchSet 4371 
+Date: 2004/09/08 10:01:07
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Patrick Huesmann noticed BusyBox would not link when
+CONFIG_FEATURE_COMMAND_EDITING was defined *and*
+CONFIG_FEATURE_COMMAND_TAB_COMPLETION was undefined.
+
+Vladimir N. Oleynik writes:
+
+Its declare always, also if CONFIG_FEATURE_COMMAND_TAB_COMPLETION
+undefined.
+Patch to CVS version attached.
+
+--w
+vodz
+
+Members: 
+	shell/ash.c:1.105->1.106 
+
+---------------------
+PatchSet 4372 
+Date: 2004/09/08 10:56:06
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Felipe Kellermann writes:
+
+The Togg's sysklogd patch to use sendto() on remote logging is formatting
+strangely (using `<' and '>' surrounding the `msg' string message).  This
+is OK, but this is not the standard way of formatting this message.
+
+So this patch does the following:
+
+o Fix the formatting to the standard way.
+o Uses `MAXLINE' when needed;
+o Don't loop sending messages without a "sleeping time",
+  I'm now doing `now = 1', `now <<= 1';
+o Don't die on `init_RemoteLog' when starting up (feature!)
+  We're now trying to connect every time we have an invalid fd;
+o Removes one static uneeded variable.
+o Removes two automatic uneeded variables.
+
+Members: 
+	sysklogd/syslogd.c:1.115->1.116 
+
+---------------------
+PatchSet 4373 
+Date: 2004/09/08 20:13:05
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Fixup URL
+
+Members: 
+	docs/busybox.net/cvs_write.html:1.9->1.10 
+
+---------------------
+PatchSet 4374 
+Date: 2004/09/14 13:59:44
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+I have to assume both Avaks and LSILogic are deliberatly ignoring me.
+
+Members: 
+	docs/busybox.net/shame.html:1.18->1.19 
+
+---------------------
+PatchSet 4375 
+Date: 2004/09/14 16:08:02
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from tito to add argument checking.
+
+Members: 
+	loginutils/addgroup.c:1.12->1.13 
+
+---------------------
+PatchSet 4376 
+Date: 2004/09/14 16:23:56
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from Felipe Kellermann, adds missing applet usage options, removes usage
+for options that are currently not implemented and fixes typos.
+
+Members: 
+	include/usage.h:1.221->1.222 
+
+---------------------
+PatchSet 4377 
+Date: 2004/09/14 17:24:58
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from Felipe Kellermann, remove some unnecessary dups, i declared a few extra const's also.
+
+Members: 
+	networking/ifupdown.c:1.50->1.51 
+	networking/telnet.c:1.43->1.44 
+	networking/telnetd.c:1.12->1.13 
+	networking/tftp.c:1.28->1.29 
+	util-linux/getopt.c:1.13->1.14 
+
+---------------------
+PatchSet 4378 
+Date: 2004/09/14 18:12:13
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch by Felipe Kellermann, fix a bug introduced in the last patch by adding a condition around the remote logging, also adds some comments.
+
+Members: 
+	sysklogd/syslogd.c:1.116->1.117 
+
+---------------------
+PatchSet 4379 
+Date: 2004/09/14 18:56:52
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Apply patch from Felipe Kellermann to simlify logic of sort functions.
+I reversed the result of the sort functions to make the big numbers go to the top.
+
+Members: 
+	procps/top.c:1.12->1.13 
+
+---------------------
+PatchSet 4380 
+Date: 2004/09/14 19:14:00
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+remove a cut/paste mistake, i better get some sleep.
+
+Members: 
+	procps/top.c:1.13->1.14 
+
+---------------------
+PatchSet 4381 
+Date: 2004/09/15 02:05:23
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch by Felipe Kellermann, use the common escape handling function and remove some unused code.
+
+Members: 
+	coreutils/printf.c:1.22->1.23 
+
+---------------------
+PatchSet 4382 
+Date: 2004/09/15 02:39:09
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Only write to shadow file is shadow passwords are enabled. Patch by magicfox modified by myself to retain check for shadow file access.
+
+Members: 
+	loginutils/passwd.c:1.8->1.9 
+
+---------------------
+PatchSet 4383 
+Date: 2004/09/15 03:04:07
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Tito writes,
+"This patch fixes all the bugs in id previously spotted by vodz and me.
+The binary size increased a bit,  but now it should work as expected."
+
+Members: 
+	coreutils/id.c:1.26->1.27 
+	include/libbb.h:1.135->1.136 
+	libbb/Makefile.in:1.37->1.38 
+	libbb/my_getgrgid.c:1.9->1.10 
+	libbb/my_getpwuid.c:1.9->1.10 
+	libbb/my_getug.c:INITIAL->1.1 
+
+---------------------
+PatchSet 4384 
+Date: 2004/09/15 03:24:32
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Add a missing brace, patch by Hideki IWAMOTO
+
+Members: 
+	coreutils/stty.c:1.9->1.10 
+
+---------------------
+PatchSet 4385 
+Date: 2004/09/23 20:08:46
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Add some notes on how to make telnetd actually work
+
+Members: 
+	networking/Config.in:1.28->1.29 
+
+---------------------
+PatchSet 4386 
+Date: 2004/09/24 01:25:39
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+A bit of extra explanation regarding STANDALONE
+
+Members: 
+	shell/Config.in:1.16->1.17 
+
+---------------------
+PatchSet 4387 
+Date: 2004/09/24 02:04:13
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from David Daney to make the -i option work with -l.
+
+Members: 
+	coreutils/ls.c:1.111->1.112 
+
+---------------------
+PatchSet 4388 
+Date: 2004/09/24 02:36:44
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Remove this error message at Vodz request, it was misleading.
+
+Members: 
+	libbb/correct_password.c:1.4->1.5 
+
+---------------------
+PatchSet 4389 
+Date: 2004/09/24 09:09:44
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Fix a typo
+
+Members: 
+	shell/Config.in:1.17->1.18 
+
+---------------------
+PatchSet 4390 
+Date: 2004/09/24 09:18:55
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from Egor Duda
+Attached patch prevents modprobe from trying to call 'insmod (null)'
+whenever nonexistent module is either passed to modprobe via command
+line or mentioned in modules.dep
+
+this replaces cryptic error
+sh: Syntax error: word unexpected (expecting ")")
+with
+modprobe: module some-module not found.
+
+egor.
+
+Members: 
+	modutils/modprobe.c:1.40->1.41 
+
+---------------------
+PatchSet 4391 
+Date: 2004/09/24 09:24:27
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from Dmitry Zakharov to fix a bug triggered by freeswan's scripts.
+
+Members: 
+	editors/awk.c:1.10->1.11 
+
+---------------------
+PatchSet 4392 
+Date: 2004/09/30 00:24:21
+Author: bug1
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from William Barsse to fix a segfault when multiple files are specified.
+
+Members: 
+	coreutils/tail.c:1.47->1.48 
+
+---------------------
+PatchSet 4393 
+Date: 2004/10/07 00:35:59
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Make it more apparent that archive creation is not supported
+
+Members: 
+	archival/ar.c:1.49->1.50 
+
+---------------------
+PatchSet 4394 
+Date: 2004/10/08 07:21:58
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from Michael Tokarev:
+
+Scenario:
+
+  touch x -- creates plain file name `x'
+  mkdir x -- exits successefully
+
+libbb/make_directory.c, bb_make_directory(), contains
+the following code:
+
+        if (mkdir(path, 0777) < 0) {
+            /* If we failed for any other reason than the directory
+             * already exists, output a diagnostic and return -1.*/
+            if (errno != EEXIST) {
+                fail_msg = "create";
+                umask(mask);
+                break;
+            }
+            /* Since the directory exists, don't attempt to change
+             * permissions if it was the full target.  Note that
+             * this is not an error conditon. */
+            if (!c) {
+                umask(mask);
+                return 0;
+            }
+        }
+
+The assumption that EEXIST error is due to that the *directory*
+already exists is wrong: any file type with that name will cause
+this error to be returned.  Proper way IMHO will be is to stat()
+the path and check whenever this is really a directory.  Below
+(attached) is a patch to fix this issue.
+
+Members: 
+	libbb/make_directory.c:1.15->1.16 
+
+---------------------
+PatchSet 4395 
+Date: 2004/10/08 07:45:08
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+egor duda writes:
+
+Hi!
+
+I've created a patch to busybox' build system to allow building it in
+separate tree in a manner similar to kbuild from kernel version 2.6.
+
+That is, one runs command like
+'make O=/build/some/where/for/specific/target/and/options'
+and everything is built in this exact directory, provided that it exists.
+
+I understand that applyingc such invasive changes during 'release
+candidates' stage of development is at best unwise. So, i'm currently
+asking for comments about this patch, starting from whether such thing
+is needed at all to whether it coded properly.
+
+'make check' should work now, and one make creates Makefile in build
+directory, so one can run 'make' in build directory after that.
+
+One possible caveat is that if we build in some directory other than
+source one, the source directory should be 'distclean'ed first.
+
+egor
+
+Members: 
+	Makefile:1.297->1.298 
+	Rules.mak:1.37->1.38 
+	applets/Makefile:1.5->1.6 
+	applets/Makefile.in:1.5->1.6 
+	archival/Makefile:1.7->1.8 
+	archival/Makefile.in:1.5->1.6 
+	archival/libunarchive/Makefile:1.5->1.6 
+	archival/libunarchive/Makefile.in:1.23->1.24 
+	console-tools/Makefile:1.4->1.5 
+	console-tools/Makefile.in:1.5->1.6 
+	coreutils/Makefile:1.3->1.4 
+	coreutils/Makefile.in:1.9->1.10 
+	coreutils/libcoreutils/Makefile:1.3->1.4 
+	coreutils/libcoreutils/Makefile.in:1.3->1.4 
+	debianutils/Makefile:1.3->1.4 
+	debianutils/Makefile.in:1.5->1.6 
+	editors/Makefile:1.4->1.5 
+	editors/Makefile.in:1.5->1.6 
+	findutils/Makefile:1.4->1.5 
+	findutils/Makefile.in:1.4->1.5 
+	init/Makefile:1.5->1.6 
+	init/Makefile.in:1.9->1.10 
+	libbb/Makefile:1.10->1.11 
+	libbb/Makefile.in:1.38->1.39 
+	libpwdgrp/Makefile:1.3->1.4 
+	libpwdgrp/Makefile.in:1.4->1.5 
+	loginutils/Makefile:1.3->1.4 
+	loginutils/Makefile.in:1.8->1.9 
+	miscutils/Makefile:1.7->1.8 
+	miscutils/Makefile.in:1.12->1.13 
+	modutils/Makefile:1.4->1.5 
+	modutils/Makefile.in:1.3->1.4 
+	networking/Makefile:1.7->1.8 
+	networking/Makefile.in:1.19->1.20 
+	networking/libiproute/Makefile:1.3->1.4 
+	networking/libiproute/Makefile.in:1.6->1.7 
+	networking/udhcp/Makefile:1.3->1.4 
+	networking/udhcp/Makefile.in:1.10->1.11 
+	procps/Makefile:1.4->1.5 
+	procps/Makefile.in:1.6->1.7 
+	scripts/config/Makefile:1.4->1.5 
+	shell/Makefile:1.4->1.5 
+	shell/Makefile.in:1.3->1.4 
+	sysklogd/Makefile:1.5->1.6 
+	sysklogd/Makefile.in:1.3->1.4 
+	testsuite/runtest:1.8->1.9 
+	testsuite/du/du-h-works:1.1->1.2 
+	testsuite/du/du-k-works:1.1->1.2 
+	testsuite/du/du-l-works:1.1->1.2 
+	testsuite/du/du-m-works:1.1->1.2 
+	testsuite/du/du-s-works:1.1->1.2 
+	testsuite/du/du-works:1.1->1.2 
+	testsuite/head/head-n-works:1.1->1.2 
+	testsuite/head/head-works:1.1->1.2 
+	testsuite/ls/ls-1-works:1.1->1.2 
+	testsuite/ls/ls-h-works:1.1->1.2 
+	testsuite/ls/ls-l-works:1.1->1.2 
+	testsuite/ls/ls-s-works:1.1->1.2 
+	testsuite/sort/sort-n-works:1.1->1.2 
+	testsuite/sort/sort-r-works:1.1->1.2 
+	testsuite/sort/sort-works:1.1->1.2 
+	testsuite/tail/tail-n-works:1.1->1.2 
+	testsuite/tail/tail-works:1.1->1.2 
+	testsuite/xargs/xargs-works:1.1->1.2 
+	util-linux/Makefile:1.6->1.7 
+	util-linux/Makefile.in:1.8->1.9 
+
+---------------------
+PatchSet 4396 
+Date: 2004/10/08 07:58:30
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+As noticed by egor duda, current_menu is declared as 'extern struct menu
+*current_menu;' in scripts/config/lkc.h line 63, and this conflicts with
+static definition in mconf.c.
+
+Members: 
+	scripts/config/mconf.c:1.5->1.6 
+
+---------------------
+PatchSet 4397 
+Date: 2004/10/08 08:03:29
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+last_patch139.gz from Vladimir N. Oleynik:
+
+>I also don't mean to disagree about leaving 30x status codes until after
+>1.0.  In fact, although redirecting http://host/dir to http://host/dir/
+>with a 301 is common practice (e.g. Apache, IIS), AFAIK it isn't
+>actually required (or mentioned) by the HTTP specs.
+
+Ok.
+Attached patch have 302 and 408 implemented features.
+
+
+--w
+vodz
+
+Members: 
+	networking/httpd.c:1.27->1.28 
+
+---------------------
+PatchSet 4398 
+Date: 2004/10/08 08:07:40
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Tito writes:
 
 Hi to all,
-This patch is useful for:
-1) remove an unused var from extern char *find_real_root_device_name(const char* name)
-    changing it to extern char *find_real_root_device_name(void).
-2) fixes include/libbb.h, coreutils/df.c, util-linux/mount.c and  util-linux/umount.c accordingly.
-3) fixes a bug, really a false positive,  in find_real_root_device_name() that happens if
-    in the /dev directory exists a link named root (/dev/root) that should be skipped but
-    is not. This affects applets like df that display wrong results
+This patch contains just some fixes for some misleading
+comments in my_getpwuid.c and my_getug.c.
+The code is untouched so this patch will not
+cause troubles.
+
+Please apply.
+
+Thanks in advance and Ciao,
+Tito
 
 Members: 
-	coreutils/df.c:1.57->1.58 
-	include/libbb.h:1.132->1.133 
-	libbb/find_root_device.c:1.12->1.13 
-	util-linux/mount.c:1.119->1.120 
-	util-linux/umount.c:1.64->1.65 
+	libbb/my_getpwuid.c:1.10->1.11 
+	libbb/my_getug.c:1.1->1.2 
 
 ---------------------
-PatchSet 4327 
-Date: 2004/08/03 08:23:33
+PatchSet 4399 
+Date: 2004/10/08 08:10:57
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-William Barsse writes:
+Hiroshi Ito writes:
 
-fixes two other issues (plus the previous as well) with a 2.4 kernel :
+    Hello
 
-- should be able to modprobe an already loaded module and get 0 return
-code :
-# modprobe <something> && modprobe <something> && echo "ok" || echo "failed"
-....
-failed
+    I'm using busy box on mipsel machine.
 
-Well, hope this helps and that I didn't screw up again,
-- William
+    "grep -f file" will cause segmentation fault.
+
+Vladimir N. Oleynik writes:
+
+Hiroshi,
+
+Thank for bug report, but your patch is full broken.
+Worked patch attached.
+(really changes is zero initialize, and indent correcting).
+
+
+--w
+vodz
 
 Members: 
-	modutils/modprobe.c:1.33->1.34 
+	findutils/grep.c:1.85->1.86 
 
 ---------------------
-PatchSet 4328 
-Date: 2004/08/04 19:16:54
+PatchSet 4400 
+Date: 2004/10/08 08:14:58
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Run msh through indent
+Hiroshi Ito writes:
+
+ash
+   "unset OLDPWD; cd -"  causes segmentation fault.
+    ( OLDPWD is not set when sh is invoked from getty. )
+
+patch against current CVS is attached.
 
 Members: 
-	shell/msh.c:1.18->1.19 
+	shell/ash.c:1.106->1.107 
 
 ---------------------
-PatchSet 4329 
-Date: 2004/08/04 19:19:10
+PatchSet 4401 
+Date: 2004/10/08 08:17:39
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Michael Leibow, MichaelLe at belkin.com writes:
+Hiroshi Ito writes:
 
-A question was posted a month ago by Mark Alamo to see if others had
-problems with sourcing subscripts within msh.  We asked his firm to fix the
-msh.c bug he described because we didn't have enough time to do it
-ourselves.
+"kill -HUP 1" reloads inittab, and when I append one line to inittab
+and send HUP signal two times, It will starts 2 process.
 
-When msh.c is executing a compound statement and there is a . command to
-source another script file, msh.c will not execute the subscript until it's
-completed executing the rest of the compound statement.
-
-His example was this:
-
-Echo "Start" ; . ./subA; echo "mid" ; . ./subB ; echo "end"
-
-subA and subB execute AFTER end is printed in reverse order.  The same is
-true if the sourced files are inside an if else fi, case esac, or any
-compound statement.
-
-Attached is a patch to msh.c.  It fixes the problem.  Cd to the root of your
-busybox tree and execute "patch -p1 < msh.c.patch"
-
-Unfortunately, I won't have more time to work on this so I hope that there
-aren't any problems!
-
-Michael Leibow
-Senior Software Engineer
-
-Belkin Corporation
+patch against current CVS is attached.
 
 Members: 
-	shell/msh.c:1.19->1.20 
+	init/init.c:1.204->1.205 
 
 ---------------------
-PatchSet 4330 
-Date: 2004/08/06 00:58:53
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Part of patch from William Barsse, fixes a problem with unescaped %.
-
-Members: 
-	sysklogd/klogd.c:1.22->1.23 
-
----------------------
-PatchSet 4331 
-Date: 2004/08/06 01:49:04
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Patch from Tito to fix warnings about redifined functionions barrier and likely.
-
-Members: 
-	shell/ash.c:1.103->1.104 
-
----------------------
-PatchSet 4332 
-Date: 2004/08/11 02:30:30
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Willian Barsse wrote
-"There seems to be a slight problem with the "mod_strcmp" function in
-modprobe.c, it scans for the first occurence of the module name in the
-"mod_path" variable and expects it to be the last path element. ie
-/lib/modules/2.4.22-debug/kernel/fs/vfat in my example. The comparison
-will always fail if mod_path contains another substring matching the
-module name."
-
-Robert McQueen wrote
-"Although William Barsse's patch fixed mod_strcmp for 2.4 kernels, there
-was a remaining problem which prevented it from working for me. I've
-just tracked it down - when you enable kernel 2.6 module support it
-hard-wired the extension to .ko instead of checking at runtime like the
-other places where 2.4 differs from 2.6. The attached patch fixes this
-for me."
-
-Members: 
-	modutils/modprobe.c:1.34->1.35 
-
----------------------
-PatchSet 4333 
-Date: 2004/08/11 02:32:18
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Patch from Phil Blundellto improve substring match
-
-Members: 
-	modutils/modprobe.c:1.35->1.36 
-
----------------------
-PatchSet 4334 
-Date: 2004/08/11 02:45:47
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Patch from Bastian Blank to add 64 bit support to the test command.
-Example of broken usage: ./busybox test 2147483648 -gt 2147483648
-
-Members: 
-	coreutils/Config.in:1.25->1.26 
-	coreutils/test.c:1.25->1.26 
-
----------------------
-PatchSet 4335 
-Date: 2004/08/11 03:50:30
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Patch from Tito to fix memory leak upon error.
-
-Members: 
-	libbb/xreadlink.c:1.5->1.6 
-
----------------------
-PatchSet 4336 
-Date: 2004/08/11 05:56:30
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Patch from Mike Castle, dont print an empty line (patch modified by me to
-change formatting).
-
-Members: 
-	modutils/modprobe.c:1.36->1.37 
-
----------------------
-PatchSet 4337 
-Date: 2004/08/11 08:10:58
-Author: bug1
-Branch: HEAD
-Tag: (none) 
-Log:
-Set default command to list rather than get, its default behaviour now
-coincides with upstream. Patch from debian diff.
-
-Members: 
-	networking/libiproute/iproute.c:1.13->1.14 
-
----------------------
-PatchSet 4338 
-Date: 2004/08/12 16:52:00
+PatchSet 4402 
+Date: 2004/10/08 08:21:54
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Patch from solar to fix problems with get_name()
+Hiroshi Ito writes:
+
+Hello, all.
+
+Busybox init does not handle removed inittab entry correctly.
+
+# I'm sorry about my poor english, but you can find
+# what I would like to say from patch, isn't it?
+
+even if you apply this path,
+when yoy try to change a command line option in inittab,
+you have to do following steps.
+1. remove old line from initrd
+2. send HUP signal to init
+3. kill old proces which is invoked from init.
+4. append new line to inittab
+5. send HUP signal to init, again
+
+patch is against current CVS + last patch witch I send it last.
 
 Members: 
-	libbb/interface.c:1.23->1.24 
+	init/init.c:1.205->1.206 
 
 ---------------------
-PatchSet 4339 
-Date: 2004/08/14 20:57:33
+PatchSet 4403 
+Date: 2004/10/08 08:27:40
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Christian Ostheimer writes:
+Patch from Denis Vlasenko to fix a problem where
+wget http://1.2.3.4/abc/ loses last '/'
+
+Members: 
+	networking/wget.c:1.74->1.75 
+
+---------------------
+PatchSet 4404 
+Date: 2004/10/08 08:49:25
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Wade Berrier writes:
 
 Hello,
 
-function build_dep in modprobe.c assumes that dependencies of one module
-have not more than 255 chars;
-that is not sufficient in kernel 2.6.7 (alsa sound modules). - Below is
-a diff that solves the problem for me.
+Here's a patch for a first attempt at static leases for udhcpd.
+Included in the tarball are 2 files (static_leases.c, static_leases.h)
+and a patch against the latest cvs.
 
-With regards, Christian Ostheimer
+In the config file you can configure static leases with the following
+format:
+
+static_lease 00:60:08:11:CE:4E 192.168.0.54
+static_lease 00:60:08:11:CE:3E 192.168.0.44
+
+Comments/suggestions/improvements are welcome.
+
+
+Wade
 
 Members: 
-	modutils/modprobe.c:1.37->1.38 
+	examples/udhcp/udhcpd.conf:1.3->1.4 
+	networking/udhcp/Makefile.in:1.11->1.12 
+	networking/udhcp/dhcpd.c:1.6->1.7 
+	networking/udhcp/dhcpd.h:1.6->1.7 
+	networking/udhcp/files.c:1.14->1.15 
+	networking/udhcp/leases.c:1.6->1.7 
+	networking/udhcp/serverpacket.c:1.6->1.7 
+	networking/udhcp/static_leases.c:INITIAL->1.1 
+	networking/udhcp/static_leases.h:INITIAL->1.1 
 
 ---------------------
-PatchSet 4340 
-Date: 2004/08/16 08:29:44
+PatchSet 4405 
+Date: 2004/10/08 08:57:35
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Aurelien Jacobs writes:
-
-with a quick conversion you will see that 132608 == 0x20600
-so noticed that the elif will never be matched !
-Apparently there was already a try to modify this in CVS which
-was reverted (it was plain wrong).
-
-I don't know when __kernel_old_dev_t is needed, but with a 2.6.7
-or a 2.6.8 this is __kernel_dev_t wich is needed.
-
-I corrected this with the following patch but maybe older 2.6
-still need __kernel_old_dev_t ?
-
-I think this should be corrected before 1.0.
-
-Thanks
-Aurel
+Patch from Claus Klein to increase, and make more apparent
+the hard coded limit on the number of mounts
 
 Members: 
-	libbb/loop.c:1.10->1.11 
+	libbb/mtab.c:1.5->1.6 
 
 ---------------------
-PatchSet 4341 
-Date: 2004/08/16 08:36:28
+PatchSet 4406 
+Date: 2004/10/08 09:43:34
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Use __kernel_old_dev_t for 2.6.x kernels
+Fix CONFIG_ASH_MATH_SUPPORT_64 so it actually works
 
 Members: 
-	libbb/loop.c:1.11->1.12 
+	shell/ash.c:1.107->1.108 
 
 ---------------------
-PatchSet 4342 
-Date: 2004/08/16 08:38:34
+PatchSet 4407 
+Date: 2004/10/08 10:50:08
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Joe.C writes:
-
- This bug is in busybox 1.0.0-rc2. When using lash exec
-builtin with redirection, the opened file fd keep increasing.
-For example, please try the following command with lash.
-
-
-ls -al /proc/<lash pid>/fd
-exec /bin/sh 2>/dev/null
-ls -al /proc/<lash pid>/fd
-
-  The last 'ls' command output will look like this. The fd
-number 4 shouldn't exist.
-
-lrwx------    1 501      100         64 Aug 13 13:56 4 -> /dev/pts/5
-l-wx------    1 501      100         64 Aug 13 13:56 2 -> /dev/null
-lrwx------    1 501      100         64 Aug 13 13:56 1 -> /dev/pts/5
-lrwx------    1 501      100         64 Aug 13 13:56 0 -> /dev/pts/5
-dr-xr-xr-x    3 501      100          0 Aug 13 13:56 ..
-dr-x------    2 501      100          0 Aug 13 13:56 .
-
-  This one-line patch fix this problem by setting CLOEXEC flag for
-squirrel fd. Please apply.
-
-Joe.C
+Add an initial FAQ
 
 Members: 
-	shell/lash.c:1.160->1.161 
+	docs/busybox.net/FAQ.html:INITIAL->1.1 
+	docs/busybox.net/header.html:1.8->1.9 
 
 ---------------------
-PatchSet 4343 
-Date: 2004/08/16 09:07:39
+PatchSet 4408 
+Date: 2004/10/08 10:52:08
 Author: andersen
 Branch: HEAD
 Tag: (none) 
 Log:
-Bertrand Baudet writes:
-
-Looks like the -D and -H options of the adduser applet aren't handle
-properly in BusyBox.
-
-This patch fixes the masks definition for those options according to
-there position in the optstring.
-
-Patch against RC2 but should also apply cleanly against CVS.
-
-Bertrand
+Fix the supported architectures section
 
 Members: 
-	loginutils/adduser.c:1.9->1.10 
+	README:1.36->1.37 
 
 ---------------------
-PatchSet 4344 
-Date: 2004/08/16 09:29:42
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-Do not use vfork, as init is not vfork safe.  Do not allow
-askfirst when mmuless.
-
-Members: 
-	init/init.c:1.203->1.204 
-
----------------------
-PatchSet 4345 
-Date: 2004/08/16 10:22:34
-Author: andersen
-Branch: HEAD
-Tag: (none) 
-Log:
-Only pass modprobe module params with 2.6.x kernel support.
- -Erik
-
-Members: 
-	modutils/modprobe.c:1.38->1.39 
-
----------------------
-PatchSet 4346 
-Date: 2004/08/16 10:23:33
+PatchSet 4409 
+Date: 2004/10/08 10:52:33
 Author: andersen
 Branch: HEAD
 Tag: (none) 
@@ -677,5 +1283,99 @@
 Bump version
 
 Members: 
-	Rules.mak:1.36->1.37 
+	Rules.mak:1.38->1.39 
+
+---------------------
+PatchSet 4410 
+Date: 2004/10/08 10:54:20
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+unmerged fix
+
+Members: 
+	docs/busybox.net/news.html:1.22->1.23 
+
+---------------------
+PatchSet 4411 
+Date: 2004/10/08 11:11:02
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+oops
+
+Members: 
+	docs/busybox.net/FAQ.html:1.1->1.2 
+
+---------------------
+PatchSet 4412 
+Date: 2004/10/11 20:52:16
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Patch from David Daney:
+
+It seems that date  -s MMDDHHMMYYYY.ss
+
+will ignore the .ss part.  This patch tries to fix the problem.
+
+David Daney.
+
+Members: 
+	coreutils/date.c:1.47->1.48 
+
+---------------------
+PatchSet 4413 
+Date: 2004/10/13 06:25:51
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Make certain clients of bb_make_directory default to honoring
+the user's umask
+
+Members: 
+	archival/libunarchive/data_extract_all.c:1.20->1.21 
+	libbb/make_directory.c:1.16->1.17 
+	miscutils/devfsd.c:1.9->1.10 
+
+---------------------
+PatchSet 4414 
+Date: 2004/10/13 07:18:05
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+Simon Poole writes:
+
+Erik,
+
+Attached is a patch for the udhcpc sample scripts, to correct the order in
+which routers are applied if the DHCP server provides more than one (as per
+section 3.5 of RFC2132).
+
+Apologies for not being on the mailing list and thanks for your continued
+efforts.
+
+Simon.
+
+Members: 
+	examples/udhcp/sample.bound:1.1->1.2 
+	examples/udhcp/sample.renew:1.1->1.2 
+	examples/udhcp/simple.script:1.1->1.2 
+
+---------------------
+PatchSet 4415 
+Date: 2004/10/13 07:25:01
+Author: andersen
+Branch: HEAD
+Tag: (none) 
+Log:
+return failure when nslookup fails
+
+Members: 
+	networking/nslookup.c:1.32->1.33 
 
diff --git a/docs/busybox.net/FAQ.html b/docs/busybox.net/FAQ.html
index 294e219..a9324ae 100644
--- a/docs/busybox.net/FAQ.html
+++ b/docs/busybox.net/FAQ.html
@@ -18,6 +18,7 @@
 <li><a href="#demanding">I demand that you to add &lt;favorite feature&gt; right now!   How come
 	you don't answer all my questions on the mailing list instantly?  I demand
 	that you help me with all of my problems <em>Right Now</em>!</a>
+<li><a href="#getting_started">How can I get started using BusyBox?</a>
 <li><a href="#helpme">I need help with BusyBox!  What should I do?</a>
 <li><a href="#contracts">I need you to add &lt;favorite feature&gt;!  Are the BusyBox developers willing to
 	be paid in order to fix bugs or add in &lt;favorite feature&gt;?  Are you willing to provide
@@ -146,6 +147,27 @@
 
 <hr />
 <p>
+<h2><a name="getting_started">How can I get started using BusyBox?</a></h2>
+<p>
+
+    An easy method to build your own basic BusyBox based system, is to
+    follow these simple steps:
+    <ul>
+	<li> Point your web browser <a href="/cgi-bin/cvsweb/buildroot/">here</a>
+	<li> Click on "Download tarball"
+	<li> Unpack the tarball on your Linux system somewhere
+	<li> run 'make' and configure things to taste.
+	<li> run 'unset CC'.   Some Linux systems (i.e. Gentoo) set 'CC'
+	    in the system environment which messes up cross compiles.
+	<li> run 'make'
+	<li> go have lunch, drink a pop, call a friend, play a video game, etc
+		till it finishes downloading software and compiling things.
+	<li> You should now have a shiny new BusyBox based system.
+    </ul>
+
+
+<hr />
+<p>
 <h2><a name="demanding">I demand that you to add &lt;favorite feature&gt; right now!   How come
 	you don't answer all my questions on the mailing list instantly?  I demand
 	that you help me with all of my problems <em>Right Now</em>!</a></h2>
@@ -198,8 +220,8 @@
 	href="http://codepoet-consulting.com/">CodePoet Consulting</a> to bid
     on your project.  If Erik is too busy to personally add your feature, there
     are many other active BusyBox contributors who will almost certainly be able
-    to help you out.  Erik can contact them and ask them about their availability,
-    and may even ask you to post your request for services on the mailing list.
+    to help you out.  Erik can contact them privatly, and may even let you to
+    post your request for services on the mailing list.
 
 
 <hr />
@@ -218,7 +240,7 @@
 	<input type="hidden" name="cmd" value="_xclick">
 	<input type="hidden" name="business" value="andersen@codepoet.org">
 	<input type="hidden" name="item_name" value="Support BusyBox">
-	<input type="hidden" name="image_url" value="https://codepoet-consulting.com/images/codepoet.png">
+	<input type="hidden" name="image_url" value="http://codepoet-consulting.com/images/codepoet.png">
 	<input type="hidden" name="no_shipping" value="1">
 	<input type="image" src="images/donate.png" name="submit" alt="Make donation using PayPal">
     </form>
diff --git a/docs/busybox.net/license.html b/docs/busybox.net/license.html
index 0e27c39..14324f1 100644
--- a/docs/busybox.net/license.html
+++ b/docs/busybox.net/license.html
@@ -10,12 +10,32 @@
 ensure you do not accidentally violate the law.
 
 <p>
+<h3>Complying with the BusyBox license is easy and completely free.</h3>
+
+U.S. and International Law protects copyright owners from the unauthorized
+reproduction, adaptation, display, distribution, etc of copyright protected
+works.  Copyright violations (such as shipping BusyBox in a manner contrary to
+its license) are subject to severe penalties.  The courts can award up to
+$150,000 per product shipped without even showing any actual loss by the
+copyright holder.  Criminal penalties are available for intentional acts
+undertaken for purposes of "commercial advantage" or "private financial gain."
+In addition, if it comes to my attention that you are violating the BusyBox
+license, I will list you on the <a href="/shame.html">BusyBox Hall of Shame</a>
+webpage.
 
 <p>
 
+Nobody wants that to happen.  Do everyone a favor and don't break the law -- if
+you use BusyBox, you <b>must comply with the BusyBox license</b>.
+
+<p>
+<h3>BusyBox is licensed under the GNU General Public License</h3>
+
 BusyBox is licensed under the GNU General Public License , which
-is generally just abbreviated simply as the GPL license, or
-just the GPL.  <a href="/products.html">Anyone thinking of shipping
+is generally just abbreviated as the GPL license, or
+just the GPL.
+<p>
+<a href="/products.html">Anyone thinking of shipping
 BusyBox as part of a product</a> should be familiar with the
 licensing terms under which they are allowed to use and
 distribute BusyBox.  You are advised to take a look over the
@@ -53,37 +73,39 @@
 
 <p>
 
-<b>Accompanied by source</b> generally means you place the full
-source code for all GPL'd products such as BusyBox on a driver CD
-somewhere.  Full source code includes the BusyBox ".config" file
-used when your shipping BusyBox binary was compiled.
+<b>Accompanied by source</b> generally means you distribute the full
+source code for all GPL'd products including BusyBox along with your
+product, such as by placing it somewhere on a driver CD.  Full source
+code includes the BusyBox ".config" file used when your shipping BusyBox
+binary was compiled, and any and all modifications you made to the
+BusyBox source code.
 
 <p>
 
 <b>A written offer</b> generally means that somewhere in the
-docs for your product, you write something like
+documentation for your product, you write something like
 
 <blockquote>
 The GPL source code contained in this product is available as a
 free download from http://blah.blah.blah/
 </blockquote>
-Or you can offer source by writing
-somewhere in the docs for your product something like
+Alternatively, you can offer the source code by writing
+somewhere in the documentation for your product something like
 <blockquote>
-If you would like a copy of the GPL source code in this product
-on a CD, please send $9.99 to &lt;address&gt; for the costs of
-preparing and mailing a CD to you.
+If you would like a copy of the GPL source code contained in this
+product shipped to you on CD, please send $9.99 to &lt;address&gt;
+which covers the cost of preparing and mailing a CD to you.
 </blockquote>
 <p>
 
-Keep in mind though that if you distribute GPL'd binaries online
-(as is often done when supplying firmware updates), it is highly
-recommended that you make the corresponding source available online
-at the same place.  Regardless, you <b>must</b> either make source
-available online (i.e. <b>accompanied by source</b>) and/or inform
-those downloading firmware updates of their right to obtain source
-(i.e. <b>a written offer</b>).  Failure to do so is a violation of
-your licensing obligations.
+Keep in mind though that if you distribute GPL'd binaries online (as is often
+done when supplying firmware updates), it is <b>highly</b> recommended that you
+make the corresponding source available online at the same place.  Regardless,
+if you distribute a binary copy of BusyBox online (such as part of a firmware
+update) you <b>must</b> either make source available online (i.e.
+<b>accompanied by source</b>) and/or inform those downloading firmware updates
+of their right to obtain source (i.e. <b>a written offer</b>).  Failure to do
+so is a violation of your licensing obligations.
 
 
 <p>
@@ -97,6 +119,7 @@
 as discussed on this webpage.
 
 <p>
+<h3>A Good Example</h3>
 
 These days, <a href="http://www.linksys.com/">Linksys</a> is
 doing a good job at complying with the GPL, they get to be an
@@ -104,8 +127,8 @@
 check out what they do with
 <a href="http://www.linksys.com/download/firmware.asp?fwid=178">
 distributing the firmware for their WRT54G Router.</a>
-Following their example would be a fine way to ensure you have
-fulfilled your licensing obligations.
+Following their example would be a fine way to ensure that you
+have also fulfilled your licensing obligations.
 
 
 <!--#include file="footer.html" -->
diff --git a/docs/busybox.net/news.html b/docs/busybox.net/news.html
index 1f5ebc3..0d4c81b 100644
--- a/docs/busybox.net/news.html
+++ b/docs/busybox.net/news.html
@@ -3,142 +3,44 @@
 
 <ul>
 
-  <li><b>16 August 2004 -- BusyBox 1.0.0-rc3 released</b><p>
+  <li><b>13 October 2004 -- BusyBox 1.00 released</b><p>
 
-    Here goes release candidate 3...
+    When you take a careful look at nearly every embedded Linux device or
+    software distribution shipping today, you will find a copy of BusyBox.
+    With countless routers, set top boxes, wireless access points, PDAs, and
+    who knows what else, the future for Linux and BusyBox on embedded devices
+    is looking very bright.
+
     <p>
-    The <a href="downloads/Changelog">changelog</a> has all the details.
-    And as usual you can <a href="downloads">download busybox here</a>.
+
+    It is therefore with great satisfaction that I declare each and every
+    device already shipping with BusyBox is now officially out of date.
+    The highly anticipated release of BusyBox 1.00 has arrived!
+
+    <p>
+
+    Over three years in development, BusyBox 1.00 represents a tremendous
+    improvement over the old 0.60.x stable series.  Now featuring a Linux
+    KernelConf based configuration system (as used by the Linux kernel),
+    Linux 2.6 kernel support, many many new applets, and the development
+    work and testing of thousands of people from around the world.
+
+    <p>
+
+    If you are already using BusyBox, you are strongly encouraged to upgrade to
+    BusyBox 1.00.  If you are considering developing an embedded Linux device
+    or software distribution, you may wish to investigate if using BusyBox is
+    right for your application.  If you need help getting started using
+    BusyBox, if you wish to donate to help cover expenses, or if you find a bug
+    and need help reporting it, you are invited to visit the <a
+    href="FAQ.html">BusyBox FAQ</a>.
+
+    <p>
+
+    As usual you can <a href="downloads">download busybox here</a>.
 
     <p>Have Fun!
 
-  <p>
-  <li><b>26 July 2004 -- BusyBox 1.0.0-rc2 released</b><p>
-
-    Here goes release candidate 2...
-    <p>
-    The <a href="downloads/Changelog">changelog</a> has all the details.
-    And as usual you can <a href="downloads">download busybox here</a>.
-
-    <p>Have Fun!
-
-  <p>
-  <li><b>20 July 2004 -- BusyBox 1.0.0-rc1 released</b><p>
-
-    Here goes release candidate 1...  This fixes all (most?) of the problems
-    that have turned up since -pre10.  In particular, loading and unloading of
-    kernel modules with 2.6.x kernels should be working much better.
-    <p>
-
-    I <b>really</b> want to get BusyBox 1.0.0 released soon and I see no real
-    reason why the 1.0.0 release shouldn't happen with things pretty much as
-    is.  BusyBox is in good shape at the moment, and it works nicely for
-    everything that I'm doing with it.  And from the reports I've been getting,
-    it works nicely for what most everyone else is doing with it as well.
-    There will eventually be a 1.0.1 anyway, so we might as well get on with
-    it.  No, BusyBox is not perfect.  No piece of software ever is.  And while
-    there is still plenty that can be done to improve things, most of that work
-    is waiting till we can get a solid 1.0.0 release out the door....
-    <p>
-
-    Please do not bother to send in patches adding cool new features at this
-    time.  Only bug-fix patches will be accepted.  If you have submitted a
-    bug-fixing patch to the busybox mailing list and no one has emailed you
-    explaining why your patch was rejected, it is safe to say that your patch
-    has been lost or forgotten.  That happens sometimes.  Please re-submit your
-    bug-fixing patch to the BusyBox mailing list, and be sure to put "[PATCH]"
-    at the beginning of the email subject line!
-
-    <p>
-    The <a href="downloads/Changelog">changelog</a> has all the details.
-    And as usual you can <a href="downloads">download busybox here</a>.
-
-    <p>Have Fun!
-
-    <p>
-    On a less happy note, My 92 year old grandmother (my dad's mom) passed away
-    yesterday (June 19th).  The funeral will be Thursday in a little town about
-    2 hours south of my home.  I've checked and there is absolutely no way I
-    could be back in time for the funeral if I attend <a
-    href="http://www.linuxsymposium.org/2004/">OLS</a> and give my presentation
-    as scheduled.
-    <p>
-    As such, it is with great reluctance and sadness that I have come
-    to the conclusion I will have to make my appologies and skip OLS
-    this year.
-    <p>
-
-
-  <p>
-  <li><b>13 April 2004 -- BusyBox 1.0.0-pre10 released</b><p>
-
-    Ok, I lied.  It turns out that -pre9 will not be the final BusyBox
-    pre-release.  With any luck however -pre10 will be, since I <b>really</b>
-    want to get BusyBox 1.0.0 released very soon.  As usual, please do not
-    bother to send in patches adding cool new features at this time.  Only
-    bug-fix patches will be accepted.  It would also be <b>very</b> helpful if
-    people could continue to review the BusyBox documentation and submit
-    improvements.
-
-    <p>
-    The <a href="downloads/Changelog">changelog</a> has all the details.
-    And as usual you can <a href="downloads">download busybox here</a>.
-
-    <p>Have Fun!
-    <p>
-
-
-  <p>
-  <li><b>6 April 2004 -- BusyBox 1.0.0-pre9 released</b><p>
-
-    Here goes the final BusyBox pre-release...  This is your last chance for
-    bug fixes.  With luck this will be released as BusyBox 1.0.0 later this
-    week.  Please do not bother to send in patches adding cool new features at
-    this time.  Only bug-fix patches will be accepted.  It would also be
-    <b>very</b> helpful if people could help review the BusyBox documentation
-    and submit improvements.  I've spent a lot of time updating the
-    documentation to make it better match reality, but I could really use some
-    assistance in checking that the features supported by the various applets
-    match the features listed in the documentation.
-
-    <p>
-    I had hoped to get this released a month ago, but
-    <a href="http://codepoet.org/gallery/baby_peter/img_1796">
-    another release on 1 March 2004</a> has kept me busy...
-
-    <p>
-    The <a href="downloads/Changelog">changelog</a> has all the details.
-    And as usual you can <a href="downloads">download busybox here</a>.
-
-    <p>Have Fun!
-    <p>
-
-
-  <p>
-  <li><b>23 February 2004 -- BusyBox 1.0.0-pre8 released</b><p>
-
-    Here goes yet another BusyBox pre-release...  Please do not bother to send
-    in patches supplying new features at this time.  Only bug-fix patches will
-    be accepted.  If you have a cool new feature you would like to see
-    supported, or if you have an amazing new applet you would like to submit,
-    please wait and submit such things later.  We really want to get a release
-    out we can all be proud of.  We are still aiming to finish off the -pre
-    series in February and move on to the final 1.0.0 release...  So if you
-    spot any bugs, now would be an excellent time to send in a fix to the
-    busybox mailing list.  It would also be <b>very</b> helpful if people could
-    help review the BusyBox documentation and submit improvements.  It would be
-    especially helpful if people could check that the features supported by the
-    various applets match the features listed in the documentation.
-
-    <p>
-
-    The <a href="downloads/Changelog">changelog</a> has all the details.
-    And as usual you can <a href="downloads">download busybox here</a>.
-
-    <p>Have Fun!
-    <p>
-
-
     <p>
     <li><b>Old News</b><p>
     <a href="/oldnews.html">Click here to read older news</a>
diff --git a/docs/busybox.net/oldnews.html b/docs/busybox.net/oldnews.html
index 7882246..83987ec 100644
--- a/docs/busybox.net/oldnews.html
+++ b/docs/busybox.net/oldnews.html
@@ -3,6 +3,142 @@
 
 <ul>
 
+  <li><b>16 August 2004 -- BusyBox 1.0.0-rc3 released</b><p>
+
+    Here goes release candidate 3...
+    <p>
+    The <a href="downloads/Changelog">changelog</a> has all the details.
+    And as usual you can <a href="downloads">download busybox here</a>.
+
+    <p>Have Fun!
+
+  <p>
+  <li><b>26 July 2004 -- BusyBox 1.0.0-rc2 released</b><p>
+
+    Here goes release candidate 2...
+    <p>
+    The <a href="downloads/Changelog">changelog</a> has all the details.
+    And as usual you can <a href="downloads">download busybox here</a>.
+
+    <p>Have Fun!
+
+  <p>
+  <li><b>20 July 2004 -- BusyBox 1.0.0-rc1 released</b><p>
+
+    Here goes release candidate 1...  This fixes all (most?) of the problems
+    that have turned up since -pre10.  In particular, loading and unloading of
+    kernel modules with 2.6.x kernels should be working much better.
+    <p>
+
+    I <b>really</b> want to get BusyBox 1.0.0 released soon and I see no real
+    reason why the 1.0.0 release shouldn't happen with things pretty much as
+    is.  BusyBox is in good shape at the moment, and it works nicely for
+    everything that I'm doing with it.  And from the reports I've been getting,
+    it works nicely for what most everyone else is doing with it as well.
+    There will eventually be a 1.0.1 anyway, so we might as well get on with
+    it.  No, BusyBox is not perfect.  No piece of software ever is.  And while
+    there is still plenty that can be done to improve things, most of that work
+    is waiting till we can get a solid 1.0.0 release out the door....
+    <p>
+
+    Please do not bother to send in patches adding cool new features at this
+    time.  Only bug-fix patches will be accepted.  If you have submitted a
+    bug-fixing patch to the busybox mailing list and no one has emailed you
+    explaining why your patch was rejected, it is safe to say that your patch
+    has been lost or forgotten.  That happens sometimes.  Please re-submit your
+    bug-fixing patch to the BusyBox mailing list, and be sure to put "[PATCH]"
+    at the beginning of the email subject line!
+
+    <p>
+    The <a href="downloads/Changelog">changelog</a> has all the details.
+    And as usual you can <a href="downloads">download busybox here</a>.
+
+    <p>Have Fun!
+
+    <p>
+    On a less happy note, My 92 year old grandmother (my dad's mom) passed away
+    yesterday (June 19th).  The funeral will be Thursday in a little town about
+    2 hours south of my home.  I've checked and there is absolutely no way I
+    could be back in time for the funeral if I attend <a
+    href="http://www.linuxsymposium.org/2004/">OLS</a> and give my presentation
+    as scheduled.
+    <p>
+    As such, it is with great reluctance and sadness that I have come
+    to the conclusion I will have to make my appologies and skip OLS
+    this year.
+    <p>
+
+
+  <p>
+  <li><b>13 April 2004 -- BusyBox 1.0.0-pre10 released</b><p>
+
+    Ok, I lied.  It turns out that -pre9 will not be the final BusyBox
+    pre-release.  With any luck however -pre10 will be, since I <b>really</b>
+    want to get BusyBox 1.0.0 released very soon.  As usual, please do not
+    bother to send in patches adding cool new features at this time.  Only
+    bug-fix patches will be accepted.  It would also be <b>very</b> helpful if
+    people could continue to review the BusyBox documentation and submit
+    improvements.
+
+    <p>
+    The <a href="downloads/Changelog">changelog</a> has all the details.
+    And as usual you can <a href="downloads">download busybox here</a>.
+
+    <p>Have Fun!
+    <p>
+
+
+  <p>
+  <li><b>6 April 2004 -- BusyBox 1.0.0-pre9 released</b><p>
+
+    Here goes the final BusyBox pre-release...  This is your last chance for
+    bug fixes.  With luck this will be released as BusyBox 1.0.0 later this
+    week.  Please do not bother to send in patches adding cool new features at
+    this time.  Only bug-fix patches will be accepted.  It would also be
+    <b>very</b> helpful if people could help review the BusyBox documentation
+    and submit improvements.  I've spent a lot of time updating the
+    documentation to make it better match reality, but I could really use some
+    assistance in checking that the features supported by the various applets
+    match the features listed in the documentation.
+
+    <p>
+    I had hoped to get this released a month ago, but
+    <a href="http://codepoet.org/gallery/baby_peter/img_1796">
+    another release on 1 March 2004</a> has kept me busy...
+
+    <p>
+    The <a href="downloads/Changelog">changelog</a> has all the details.
+    And as usual you can <a href="downloads">download busybox here</a>.
+
+    <p>Have Fun!
+    <p>
+
+
+  <p>
+  <li><b>23 February 2004 -- BusyBox 1.0.0-pre8 released</b><p>
+
+    Here goes yet another BusyBox pre-release...  Please do not bother to send
+    in patches supplying new features at this time.  Only bug-fix patches will
+    be accepted.  If you have a cool new feature you would like to see
+    supported, or if you have an amazing new applet you would like to submit,
+    please wait and submit such things later.  We really want to get a release
+    out we can all be proud of.  We are still aiming to finish off the -pre
+    series in February and move on to the final 1.0.0 release...  So if you
+    spot any bugs, now would be an excellent time to send in a fix to the
+    busybox mailing list.  It would also be <b>very</b> helpful if people could
+    help review the BusyBox documentation and submit improvements.  It would be
+    especially helpful if people could check that the features supported by the
+    various applets match the features listed in the documentation.
+
+    <p>
+
+    The <a href="downloads/Changelog">changelog</a> has all the details.
+    And as usual you can <a href="downloads">download busybox here</a>.
+
+    <p>Have Fun!
+    <p>
+
+
   <li><b>4 February 2004 -- BusyBox 1.0.0-pre7 released</b><p>
 
     There was a bug in -pre6 that broke argument parsing for a
diff --git a/docs/busybox.net/products.html b/docs/busybox.net/products.html
index 5278406..6ca0e3c 100644
--- a/docs/busybox.net/products.html
+++ b/docs/busybox.net/products.html
@@ -71,17 +71,13 @@
 </li><li><a href="http://www.ltsp.org/">Linux Terminal
 Server Project</a>
 
-</li><li><a href=
-"http://www.devil-linux.org/">Devil-Linux</a>
+</li><li><a href="http://www.devil-linux.org/">Devil-Linux</a>
 
-</li><li><a href=
-"http://dutnux.sourceforge.net/">DutNux</a>
+</li><li><a href="http://dutnux.sourceforge.net/">DutNux</a>
 
-</li><li><a href=
-"http://www.microwerks.net/~hugo/mindi/">Mindi</a>
+</li><li><a href="http://www.microwerks.net/~hugo/mindi/">Mindi</a>
 
-</li><li><a href=
-"http://www.tzi.de/~pharao90/ttylinux">ttylinux</a>
+</li><li><a href="http://www.minimalinux.org/ttylinux/">ttylinux</a>
 
 </li><li><a href="http://www.coyotelinux.com/">Coyote Linux</a>
 
@@ -93,6 +89,7 @@
 </li><li><a href="http://tinfoilhat.cultists.net/">Tinfoil
 Hat Linux</a>
 
+</li><li><a href="http://sourceforge.net/projects/gp32linux/">gp32linux</a>
 </li><li><a href="http://familiar.handhelds.org/">Familiar Linux</a><br>A linux distribution for handheld computers
 </li><li><a href="http://rescuecd.sourceforge.net/">Timo's Rescue CD Set</a>
 </li><li><a href="http://sf.net/projects/netstation/">Netstation</a>
@@ -149,6 +146,17 @@
 </li><li><a href="http://www.actiontec.com/products/broadband/54mbps_wireless_gateway_1p/index.html">
     ActionTec GT701-WG Wireless Gateway/DSL Modem</a>
     with source <a href="http://128.121.226.214/gtproducts/index.html">here</a>
+</li><li><a href="http://smartlinux.sourceforge.net/">S.M.A.R.T. Linux</a>
+</li><li><a href="http://www.dlink.com/">DLink - Model GSL-G604T, DSL-300T, and possibly other models</a>
+    with source <a href="ftp://ftp.dlink.co.uk/dsl_routers_modems/">here,</a>
+    with source <a href="ftp://ftp.dlink.de/dsl-products/">and here,</a>
+    and quite possibly other places as well.  You may need to dig down a bit
+    to find the source, but it does seem to be there.
+</li><li><a href="http://www.siemens-mobile.de/cds/frontdoor/0,2241,de_de_0_42931_rArNrNrNrN,00.html">Siemens SE515 DSL router</a>
+    with source <a href="http://now-portal.c-lab.de/projects/gigaset/">here, I think...</a>
+    with some details <a href="http://heinz.hippenstiel.org/familie/hp/hobby/gigaset_se515dsl.html">here.</a>
+</li><li><a href="http://frwt.stim.ru/">Free Remote Windows Terminal</a>
+    
 
 </li>
 </ul>
diff --git a/docs/busybox.net/screenshot.html b/docs/busybox.net/screenshot.html
index e691a16..9c05791 100644
--- a/docs/busybox.net/screenshot.html
+++ b/docs/busybox.net/screenshot.html
@@ -13,7 +13,7 @@
 
 
 $ ./busybox
-BusyBox v1.00 (2004.04.06-14:56+0000) multi-call binary
+BusyBox v1.00 (2004.10.13-04:49+0000) multi-call binary
 
 Usage: busybox [function] [arguments]...
    or: [function] [arguments]...
diff --git a/docs/busybox.net/shame.html b/docs/busybox.net/shame.html
index 849e73c..99807c1 100644
--- a/docs/busybox.net/shame.html
+++ b/docs/busybox.net/shame.html
@@ -22,9 +22,13 @@
 product listed here is subject to being legally ordered to cease and desist
 distribution for violation of copyright law, and the distributor of each
 product is subject to being sued for statutory copyright infringement damages
-plus legal fees.  Nobody wants to be sued, and <a
-href="mailto:andersen@codepoet.org">Erik</a> certainly has better things to do
-than sue people.  But he will sue if forced to do so to maintain compliance.
+of up to $150,000 per work plus legal fees.  Nobody wants to be sued, and <a
+href="mailto:andersen@codepoet.org">Erik</a> certainly would prefer to spend
+his time doing better things than sue people.  But he will sue if forced to
+do so to maintain compliance.
+
+<p>
+
 Do everyone a favor and don't break the law -- if you use busybox, comply with
 the busybox license by releasing the source code with your product.
 
@@ -32,7 +36,6 @@
 
 <ul>
 
-  <li><a href="http://www.dlink.com/"> DLink - Model GSL-G604T, DSL-300T, and possibly other models</a>
   <li><a href="http://www.trittontechnologies.com/products.html">Tritton Technologies NAS120</a>
 	<br>see <a href="http://www.ussg.iu.edu/hypermail/linux/kernel/0404.0/1611.html">here for details</a>
   <li><a href="http://www.macsense.com/product/homepod/">Macsense HomePod</a>
