Index: uspace/srv/devman/devman.c
===================================================================
--- uspace/srv/devman/devman.c	(revision 409f5fcf57e9be6c53c95e22f4103ca8670faaf5)
+++ uspace/srv/devman/devman.c	(revision 88b127bf34cffa40a82bc32d14d76c0c54b70919)
@@ -37,4 +37,5 @@
 #include <ipc/devman.h>
 #include <devmap.h>
+#include <str_error.h>
 
 #include "devman.h"
@@ -446,15 +447,12 @@
 bool start_driver(driver_t *drv)
 {
+	int rc;
+
 	printf(NAME ": start_driver '%s'\n", drv->name);
 	
-	const char *argv[2];
-	
-	argv[0] = drv->name;
-	argv[1] = NULL;
-	
-	int err;
-	if (task_spawn(drv->binary_path, argv, &err) == 0) {
-		printf(NAME ": error spawning %s, errno = %d\n",
-		    drv->name, err);
+	rc = task_spawnl(NULL, drv->binary_path, drv->binary_path, NULL);
+	if (rc != EOK) {
+		printf(NAME ": error spawning %s (%s)\n",
+		    drv->name, str_error(rc));
 		return false;
 	}
Index: uspace/srv/taskmon/taskmon.c
===================================================================
--- uspace/srv/taskmon/taskmon.c	(revision 409f5fcf57e9be6c53c95e22f4103ca8670faaf5)
+++ uspace/srv/taskmon/taskmon.c	(revision 88b127bf34cffa40a82bc32d14d76c0c54b70919)
@@ -50,9 +50,7 @@
 static void fault_event(ipc_callid_t callid, ipc_call_t *call)
 {
-	const char *argv[6];
 	const char *fname;
-	char *dump_fname;
 	char *s_taskid;
-	const char **s;
+	int rc;
 
 	task_id_t taskid;
@@ -67,4 +65,11 @@
 	}
 
+	printf(NAME ": Task %" PRIuTASKID " fault in thread %p.\n", taskid, thread);
+
+	fname = "/app/taskdump";
+
+#ifdef CONFIG_WRITE_CORE_FILES
+	char *dump_fname;
+
 	if (asprintf(&dump_fname, "/data/core%" PRIuTASKID, taskid) < 0) {
 		printf("Memory allocation failed.\n");
@@ -72,34 +77,15 @@
 	}
 
-	printf(NAME ": Task %" PRIuTASKID " fault in thread %p.\n", taskid, thread);
-
-#ifdef CONFIG_WRITE_CORE_FILES
-	argv[0] = "/app/taskdump";
-	argv[1] = "-c";
-	argv[2] = dump_fname;
-	argv[3] = "-t";
-	argv[4] = s_taskid;
-	argv[5] = NULL;
+	printf(NAME ": Executing %s -c %s -t %s\n", dump_fname, s_taskid);
+	rc = task_spawnl(NULL, fname, fname, "-c", dump_fname, "-t", s_taskid,
+	    NULL);
 #else
-	argv[0] = "/app/taskdump";
-	argv[1] = "-t";
-	argv[2] = s_taskid;
-	argv[3] = NULL;
+	printf(NAME ": Executing %s -t %s\n", s_taskid);
+	rc = task_spawnl(NULL, fname, fname, "-t", s_taskid, NULL);
 #endif
-	fname = argv[0];
-
-	printf(NAME ": Executing");
-	
-	s = argv;
-	while (*s != NULL) {
-		printf(" %s", *s);
-		++s;
+	if (rc != EOK) {
+		printf("%s: Error spawning %s (%s).\n", NAME, fname,
+		    str_error(rc));
 	}
-	putchar('\n');
-	
-	int err;
-	if (!task_spawn(fname, argv, &err))
-		printf("%s: Error spawning %s (%s).\n", NAME, fname,
-		    str_error(err));
 }
 
