Many small edits.
diff --git a/bin/9l b/bin/9l
index 087cda3..39e6eb1 100755
--- a/bin/9l
+++ b/bin/9l
@@ -91,6 +91,7 @@
 	do
 		eval "have$i() { false; }"
 	done
+	havethread() { false; }
 
 	# now find correct order
 	libsl=""
@@ -129,6 +130,12 @@
 	fi
 	libsl="$libsl -l9"
 
+	# cycle: lib9 expects p9main, which is defined in libthread.  oops.
+	if $havethread
+	then
+		libsl="$libsl -lthread"
+	fi
+
 	if [ "x$needdraw" = xtrue ]
 	then
 		if [ "x$X11" = "x" ]
@@ -194,9 +201,11 @@
 then
 	echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
 fi
-if ! $ld -L$PLAN9/lib "$@" $libsl $extralibs
+if $ld -L$PLAN9/lib "$@" $libsl $extralibs
 then
+	exit 0
+else
 	rm -f $target
 	exit 1
 fi
-exit 0
+
diff --git a/bin/doctype b/bin/doctype
index c55244c..e36c3ca 100755
--- a/bin/doctype
+++ b/bin/doctype
@@ -24,7 +24,7 @@
 '{
 	files=`{echo $*}
 }
-9grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* |
+9 grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* |
 sort -u |
 awk '
 BEGIN	{ files = "'$files'" }
diff --git a/bin/g b/bin/g
index b50b519..7f4e343 100755
--- a/bin/g
+++ b/bin/g
@@ -34,4 +34,4 @@
 	files="$@"
 esac
 
-exec grep -n $flags -- "$pattern" $files /dev/null
+exec 9 grep -n $flags -- "$pattern" $files /dev/null
diff --git a/bin/lc b/bin/lc
index 5685c28..a6cc377 100755
--- a/bin/lc
+++ b/bin/lc
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-ls "$@" | mc
+9 ls "$@" | mc
diff --git a/bin/man b/bin/man
index 8b5e974..f11fd04 100755
--- a/bin/man
+++ b/bin/man
@@ -60,11 +60,11 @@
 }
 ix=$S/man$sec/INDEX
 if(~ $#* 1) pat='^'^$1^' '
-if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
+if not pat='^('^`{echo $* | 9 sed 's/ /|/g'}^') '
 fils=()
 for(i in $S/man$sec){
-	if(/bin/test -f $i/INDEX){
-		try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
+	if(test -f $i/INDEX){
+		try=`{grep $pat $i/INDEX | 9 sed 's/^[^ ]* //'}
 		if(! ~ $#try 0)
 			fils=($fils $i/$try)
 	}
@@ -75,7 +75,7 @@
 	for(i) {
 		for(n in $sec) {
 			try=$S/man$n/$i.$n*
-			if (/bin/test -f $try)
+			if (test -f $try)
 				fils=($fils $try)
 		}
 	}
@@ -85,7 +85,7 @@
 	}
 }
 for(i in $fils) {
-	if(! /bin/test -f $i)
+	if(! test -f $i)
 		echo need $i >[1=2]
 	if not {
 		switch($cmd) {
@@ -99,7 +99,7 @@
 			roff t $i |tr2post |psfonts |page
 
 		case n
-			roff n $i | 9sed '
+			roff n $i | 9 sed '
 				${
         			       /^$/p
 				}