diff --git a/src/lib9/await.c b/src/lib9/await.c
index b7d9265..afc5f9e 100644
--- a/src/lib9/await.c
+++ b/src/lib9/await.c
@@ -74,7 +74,7 @@
 }
 
 static int
-_await(char *str, int n, int opt)
+_await(int pid4, char *str, int n, int opt)
 {
 	int pid, status, cd;
 	struct rusage ru;
@@ -82,7 +82,7 @@
 	ulong u, s;
 
 	for(;;){
-		pid = wait3(&status, opt, &ru);
+		pid = wait4(pid4, &status, opt, &ru);
 		if(pid <= 0)
 			return -1;
 		u = ru.ru_utime.tv_sec*1000+((ru.ru_utime.tv_usec+500)/1000);
@@ -108,12 +108,18 @@
 int
 await(char *str, int n)
 {
-	return _await(str, n, 0);
+	return _await(-1, str, n, 0);
 }
 
 int
 awaitnohang(char *str, int n)
 {
-	return _await(str, n, WNOHANG);
+	return _await(-1, str, n, WNOHANG);
+}
+
+int
+awaitfor(int pid, char *str, int n)
+{
+	return _await(pid, str, n, 0);
 }
 
diff --git a/src/lib9/wait.c b/src/lib9/wait.c
index 856f85c..31d8c02 100644
--- a/src/lib9/wait.c
+++ b/src/lib9/wait.c
@@ -2,13 +2,12 @@
 #include <libc.h>
 
 static Waitmsg*
-_wait(int nohang)
+_wait(int n, char *buf)
 {
-	int n, l;
-	char buf[512], *fld[5];
+	int l;
+	char *fld[5];
 	Waitmsg *w;
 
-	n = (nohang ? awaitnohang : await)(buf, sizeof buf-1);
 	if(n <= 0)
 		return nil;
 	buf[n] = '\0';
@@ -32,12 +31,24 @@
 Waitmsg*
 wait(void)
 {
-	return _wait(0);
+	char buf[256];
+
+	return _wait(await(buf, sizeof buf-1), buf);
 }
 
 Waitmsg*
 waitnohang(void)
 {
-	return _wait(1);
+	char buf[256];
+
+	return _wait(awaitnohang(buf, sizeof buf-1), buf);
+}
+
+Waitmsg*
+waitfor(int pid)
+{
+	char buf[256];
+
+	return _wait(awaitfor(pid, buf, sizeof buf-1), buf);
 }
 
