Index: uspace/lib/libc/generic/task.c
===================================================================
--- uspace/lib/libc/generic/task.c	(revision 45454e9b4eae43c54f3381318875dcf28b2419a0)
+++ uspace/lib/libc/generic/task.c	(revision 06d6505554331ae47f6a3959591e0b217bac938f)
@@ -64,5 +64,5 @@
 	int rc;
 
-	/* Spawn a program loader */	
+	/* Spawn a program loader. */	
 	ldr = loader_spawn();
 	if (ldr == NULL)
@@ -74,20 +74,28 @@
 		goto error;
 
-	/* Send program pathname */
+	/* Send program pathname. */
 	rc = loader_set_pathname(ldr, path);
 	if (rc != EOK)
 		goto error;
 
-	/* Send arguments */
+	/* Send arguments. */
 	rc = loader_set_args(ldr, argv);
 	if (rc != EOK)
 		goto error;
 
-	/* Request loader to start the program */	
-	rc = loader_start_program(ldr);
+	/* Load the program. */
+	rc = loader_load_program(ldr);
+	if (rc != EOK)
+		goto error;
+
+	/* Run it. */
+	/* Load the program. */
+	rc = loader_run(ldr);
 	if (rc != EOK)
 		goto error;
 
 	/* Success */
+
+	free(ldr);
 	return task_id;
 
@@ -95,4 +103,6 @@
 error:
 	loader_abort(ldr);
+	free(ldr);
+
 	return 0;
 }
