Various little fixes.
diff --git a/plumb/initial.plumbing b/plumb/initial.plumbing
new file mode 100644
index 0000000..b2ac971
--- /dev/null
+++ b/plumb/initial.plumbing
@@ -0,0 +1,5 @@
+# to update: cat $HOME/lib/plumbing | 9p write plumb/rules
+
+editor = acme
+include basic
+
diff --git a/src/cmd/acme/acme.c b/src/cmd/acme/acme.c
index 87924ca..fbfb9f1 100644
--- a/src/cmd/acme/acme.c
+++ b/src/cmd/acme/acme.c
@@ -45,7 +45,7 @@
 
 void	acmeerrorinit(void);
 void	readfile(Column*, char*);
-int	shutdown(void*, char*);
+static int	shutdown(void*, char*);
 
 void
 derror(Display *d, char *errorstr)
@@ -270,7 +270,7 @@
 
 int	dumping;
 
-int
+static int
 shutdown(void *v, char *msg)
 {
 	int i;
diff --git a/src/cmd/acme/cols.c b/src/cmd/acme/cols.c
index 14a715b..6ad3058 100644
--- a/src/cmd/acme/cols.c
+++ b/src/cmd/acme/cols.c
@@ -472,7 +472,7 @@
 	}
 	/* is it a flick to the right? */
 	if(abs(p.y-op.y)<10 && p.x>op.x+30 && rowwhichcol(c->row, p)==c)
-		p.x += Dx(w->r);	/* yes: toss to next column */
+		p.x = op.x+Dx(w->r);	/* yes: toss to next column */
 	nc = rowwhichcol(c->row, p);
 	if(nc!=nil && nc!=c){
 		colclose(c, w, FALSE);
diff --git a/src/cmd/mkfile b/src/cmd/mkfile
index 191ecfe..bd13a77 100644
--- a/src/cmd/mkfile
+++ b/src/cmd/mkfile
@@ -12,3 +12,4 @@
 
 <$PLAN9/src/mkdirs
 
+dir-install: $PLAN9/bin/yacc
diff --git a/src/cmd/plumb/plumb.c b/src/cmd/plumb/plumb.c
index a10f2c3..d693ed5 100644
--- a/src/cmd/plumb/plumb.c
+++ b/src/cmd/plumb/plumb.c
@@ -9,7 +9,7 @@
 void
 usage(void)
 {
-	fprint(2, "usage:  plumb [-p plumbfile] [-a 'attr=value ...'] [-s src] [-d dst] [-t type] [-w wdir] -i | data1\n");
+	fprint(2, "usage: plumb [-p plumbfile] [-a 'attr=value ...'] [-s src] [-d dst] [-t type] [-w wdir] -i | data1\n");
 	exits("usage");
 }
 
diff --git a/src/libthread/channel.c b/src/libthread/channel.c
index 957a352..d0fff4a 100644
--- a/src/libthread/channel.c
+++ b/src/libthread/channel.c
@@ -201,7 +201,6 @@
 	}else{
 		altexec(a, s);	/* unlocks chanlock, does splx */
 	}
-	_sched();
 	t->chan = Channone;
 _threadnalt++;
 	return a - alts;
diff --git a/src/libthread/fdwait.c b/src/libthread/fdwait.c
index e8e3129..5dd7e86 100644
--- a/src/libthread/fdwait.c
+++ b/src/libthread/fdwait.c
@@ -146,10 +146,11 @@
 		for(i=0; i<npoll; i++)
 			if(pfd[i].fd != -1 && pfd[i].revents){
 				//fprint(2, " %d", pfd[i].fd);
-				nbsendul(polls[i].c, 1);
 				pfd[i].fd = -1;
 				pfd[i].events = 0;
 				pfd[i].revents = 0;
+				nbsendul(polls[i].c, 1);
+				//fprint(2, " x%d", pfd[i].fd);
 			}
 		//fprint(2, "\n");
 	}
@@ -192,7 +193,7 @@
 	pfd[i].fd = fd;
 	pfd[i].events = rw=='r' ? POLLIN : POLLOUT;
 	polls[i].c = &s.c;
-	//fprint(2, "%s [%3d] fdwait %d %c list *0x%lux\n",
+	if(0) fprint(2, "%s [%3d] fdwait %d %c list *0x%lux\n",
 		argv0, threadid(), fd, rw, pc);
 	recvul(&s.c);
 }