diff -d -urpN busybox.7/shell/hush.c busybox.8/shell/hush.c
--- busybox.7/shell/hush.c	2009-08-09 22:06:25.000000000 +0200
+++ busybox.8/shell/hush.c	2009-08-12 14:40:47.422323539 +0200
@@ -58,6 +58,7 @@
  * TODOs:
  *      grep for "TODO" and fix (some of them are easy)
  *      builtins: ulimit
+ *      special variables (PWD etc)
  *      follow IFS rules more precisely, including update semantics
  *      export builtin should be special, its arguments are assignments
  *          and therefore expansion of them should be "one-word" expansion:
diff -d -urpN busybox.7/shell/hush_test/run-all busybox.8/shell/hush_test/run-all
--- busybox.7/shell/hush_test/run-all	2009-08-09 22:06:25.000000000 +0200
+++ busybox.8/shell/hush_test/run-all	2009-08-12 14:49:12.615322281 +0200
@@ -13,14 +13,20 @@ test -x hush || {
 	echo "No ./hush - creating a link to ../../busybox"
 	ln -s ../../busybox hush
 }
-if test -e ../../.config ; then
-	eval $(sed -e '/^#/d' -e '/^$/d' -e 's:^:export :' ../../.config)
+if test ! -e .config; then
+	if test -f ../../.config; then
+		cp ../../.config . || exit 1
+	else
+		echo "Missing .config file"
+		exit 1
+	fi
 fi
+eval $(sed -e '/^#/d' -e '/^$/d' -e 's:^:export :' .config)
 
-PATH="$PWD:$PATH" # for hush and recho/zecho/printenv
+PATH="`pwd`:$PATH" # for hush and recho/zecho/printenv
 export PATH
 
-THIS_SH="$PWD/hush"
+THIS_SH="`pwd`/hush"
 export THIS_SH
 
 do_test()
