Second attempt at one way xpopen().
diff --git a/lib/xwrap.c b/lib/xwrap.c
index 64b183f..341aac3 100644
--- a/lib/xwrap.c
+++ b/lib/xwrap.c
@@ -215,12 +215,14 @@
 // Wrapper to xpopen with a pipe for just one of stdin/stdout
 pid_t xpopen(char **argv, int *pipe, int stdout)
 {
-  int pipes[2];
+  int pipes[2], pid;
 
-  pipe[!stdout] = -1;
-  pipe[!!stdout] = 0;
+  pipes[!stdout] = -1;
+  pipes[!!stdout] = 0;
+  pid = xpopen_both(argv, pipes);
+  *pipe = pid ? pipes[!!stdout] : -1;
 
-  return xpopen_both(argv, pipes);
+  return pid;
 }
 
 int xpclose(pid_t pid, int pipe)