Index: uspace/lib/libc/generic/task.c
===================================================================
--- uspace/lib/libc/generic/task.c	(revision 9a1b20c34d5404b8272209d06c0239aa1a2384da)
+++ uspace/lib/libc/generic/task.c	(revision abf35647b3adaaa83f5053174133e13707bdab83)
@@ -134,4 +134,5 @@
 	char *pa;
 	size_t pa_len;
+	task_id_t task_id;
 
 	pa = absolutize(path, &pa_len);
@@ -152,4 +153,16 @@
 		return 0;
 
+	/* Get task ID. */
+	req = async_send_0(phone_id, LOADER_GET_TASKID, &answer);
+	rc = ipc_data_read_start(phone_id, &task_id, sizeof(task_id));
+	if (rc != EOK) {
+		async_wait_for(req, NULL);
+		goto error;
+	}
+
+	async_wait_for(req, &retval);
+	if (retval != EOK)
+		goto error;
+
 	/* Send program pathname */
 	req = async_send_0(phone_id, LOADER_SET_PATHNAME, &answer);
@@ -176,5 +189,5 @@
 	/* Success */
 	ipc_hangup(phone_id);
-	return 1;
+	return task_id;
 
 	/* Error exit */
Index: uspace/lib/libc/include/ipc/loader.h
===================================================================
--- uspace/lib/libc/include/ipc/loader.h	(revision 9a1b20c34d5404b8272209d06c0239aa1a2384da)
+++ uspace/lib/libc/include/ipc/loader.h	(revision abf35647b3adaaa83f5053174133e13707bdab83)
@@ -40,4 +40,5 @@
 typedef enum {
 	LOADER_HELLO = IPC_FIRST_USER_METHOD,
+	LOADER_GET_TASKID,
 	LOADER_SET_PATHNAME,
 	LOADER_SET_ARGS,
