diff --git a/toys/pending/openvt.c b/toys/pending/openvt.c
index 0eb0c25..c11e152 100644
--- a/toys/pending/openvt.c
+++ b/toys/pending/openvt.c
@@ -112,8 +112,7 @@ void openvt_main(void)
   while (vt_fd > 2)
     close(vt_fd--);
 
-  pid = xfork();
-  if (!pid) {
+  if (!(pid = CFG_TOYBOX_FORK ? xfork() : XVFORK())) {
     setsid();
     ioctl(vt_fd, TIOCSCTTY, 0);
     xexec(toys.optargs);
