This patch from Evin Robertson <nitfol@my-deja.com> fixes export so it works.
This way leaks memory, but oh well.  We will probably fix that when we get
around to doing local variables.
diff --git a/shell/hush.c b/shell/hush.c
index e58ac44..a5f634b 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -469,7 +469,10 @@
 	if (child->argv[1] == NULL) {
 		return (builtin_env(child));
 	}
-	res = putenv(child->argv[1]);
+	/* FIXME -- I leak memory.  This will be
+	 * fixed up properly when we add local
+	 * variable support -- I hope */
+	res = putenv(strdup(child->argv[1]));
 	if (res)
 		fprintf(stderr, "export: %s\n", strerror(errno));
 	return (res);