diff --git a/src/lib/core/popen.c b/src/lib/core/popen.c
index a0630e3d90d89bcacb0344eaca63ea57dbb6d30b..6b6062215b4d5a2d695fb7a16da4ff8925ecd5d2 100644
--- a/src/lib/core/popen.c
+++ b/src/lib/core/popen.c
@@ -945,7 +945,7 @@ popen_new(struct popen_opts *opts)
 		if (opts->flags & POPEN_FLAG_SHELL)
 			execve(_PATH_BSHELL, opts->argv, envp);
 		else
-			execve(opts->argv[2], &opts->argv[2], envp);
+			execve(opts->argv[0], opts->argv, envp);
 exit_child:
 		_exit(errno);
 		unreachable();