      {
        lstdin = move_to_high_fd (0, 0, 255);
        if (lstdin > 0)
-@@ -4631,6 +4635,18 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
+@@ -4631,6 +4635,33 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
    SHELL_VAR *hookf;
    WORD_LIST *wl;
  

 esac
 
diff --git a/execute_cmd.c b/execute_cmd.c
index 485b0c7..0f12331 100644
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -2202,7 +2202,11 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)

+  // Update environ.
+  maybe_make_export_env ();
+  args = strvec_from_word_list (words, 0, 0, (int *)NULL);
+  pathname = words->word->word;
+  pid = nacl_spawn_simple(args);
+  free(args);
+  if (pid < 0) {
+    /* Make sure filenames are displayed using printable characters */
+    if (ansic_shouldquote (pathname))
+      pathname = ansic_quote (pathname, 0, NULL);
+    if (errno == ENOENT) {
+      internal_error (_("%s: command not found"), pathname);
+    } else {
+      internal_error (_("%s: nacl_spawn failed (errno %d)"), pathname, errno);
+    }
+    return EX_NOTFOUND;  /* Posix.2 says the exit status is 127 */
+  }
+  if (nacl_waitpid(pid, &result, 0) < 0) {
+    if (ansic_shouldquote (pathname))
+      pathname = ansic_quote (pathname, 0, NULL);
+    internal_error (_("%s: nacl_waitpid failed (errno %d)"), pathname, errno);
+    return EXECUTION_FAILURE;
+  }
+  /* TODO(bradnelson): Make this more general once we support signals. */
+  return WEXITSTATUS(result);
+#else
   nofork = (cmdflags & CMD_NO_FORK);  /* Don't fork, just exec, if no pipes */
   pathname = words->word->word;
 
@@ -4760,6 +4791,7 @@ parent_return:
       FREE (command);
       return (result);
     }
