--- p11-kit-0.23.1/p11-kit/p11-kit.c.orig	2015-04-13 13:01:51.331355100 +0200
+++ p11-kit-0.23.1/p11-kit/p11-kit.c	2015-04-13 13:09:46.346179100 +0200
@@ -72,6 +72,7 @@
                char *argv[])
 {
 	char **args;
+	int code;
 
 	args = calloc (argc + 2, sizeof (char *));
 	return_val_if_fail (args != NULL, 1);
@@ -80,14 +81,18 @@
 	memcpy (args + 1, argv, sizeof (char *) * argc);
 	args[argc + 1] = NULL;
 
-	execv (args[0], args);
-
-	/* At this point we have no command */
-	p11_message_err (errno, "couldn't run trust tool");
+	code = _spawnv (_P_WAIT, args[0], args);
 
 	free (argv[0]);
 	free (args);
-	return 2;
+
+	if (code) {
+		/* At this point we have no command */
+		p11_message_err (errno, "couldn't run trust tool");
+		return 2;
+	}
+
+	return 0;
 }
 
 int
@@ -97,6 +102,7 @@
 	const char *private_dir;
 	char *filename;
 	char *path;
+	int code;
 
 	/* These are trust commands, send them to that tool */
 	if (strcmp (argv[0], "extract") == 0) {
@@ -118,14 +124,18 @@
 	return_val_if_fail (path != NULL, 1);
 
 	argv[argc] = NULL;
-	execv (path, argv);
-
-	/* At this point we have no command */
-	p11_message ("'%s' is not a valid command. See 'p11-kit --help'", argv[0]);
+	code = _spawnv (_P_WAIT, path, argv);
 
 	free (filename);
 	free (path);
-	return 2;
+
+	if (code) {
+		/* At this point we have no command */
+		p11_message ("'%s' is not a valid command. See 'p11-kit --help'", argv[0]);
+		return 2;
+	}
+
+	return 0;
 }
 
 int
