fix
diff --git a/src/cmd/9p.c b/src/cmd/9p.c
index 7d218e6..1fa040c 100644
--- a/src/cmd/9p.c
+++ b/src/cmd/9p.c
@@ -323,6 +323,7 @@
 void
 rdcon(void *v)
 {
+	int n;
 	char buf[4096];
 	CFid *fid;
 	
@@ -331,6 +332,8 @@
 		n = read(0, buf, sizeof buf);
 		if(n <= 0)
 			threadexitsall(0);
+		if(buf[0] == 'R'-'A'+1)
+			threadexitsall(0);
 		if(fswrite(fid, buf, n) != n)
 			fprint(2, "write: %r\n");
 	}
@@ -357,9 +360,9 @@
 		usage();
 
 	fid = xopen(argv[0], ORDWR);
-	proccreate(rdcon, fid, STACK);
+	proccreate(rdcon, fid, 32768);
 	for(;;){
-		n = fsread(fid, buf, n);
+		n = fsread(fid, buf, sizeof buf);
 		if(n <= 0)
 			threadexitsall(0);
 		if(nocr){