Index: uspace/srv/loader/main.c
===================================================================
--- uspace/srv/loader/main.c	(revision 5ab597d597af91ae13344efc2265b1cbfb0ee935)
+++ uspace/srv/loader/main.c	(revision d1c8287d54f5def7aa989590752e1af93022c12e)
@@ -78,4 +78,25 @@
 static char *arg_buf = NULL;
 
+static int loader_get_taskid(ipc_callid_t rid, ipc_call_t *request)
+{
+	ipc_callid_t callid;
+	task_id_t task_id;
+	size_t len;
+
+	task_id = task_get_id();
+
+	if (!ipc_data_read_receive(&callid, &len)) {
+		ipc_answer_0(callid, EINVAL);
+		ipc_answer_0(rid, EINVAL);
+		return;
+	}
+
+	if (len > sizeof(task_id)) len = sizeof(task_id);
+
+	ipc_data_write_finalize(callid, &task_id, len);
+	ipc_answer_0(rid, EOK);
+}
+
+
 /** Receive a call setting pathname of the program to execute.
  *
@@ -275,4 +296,7 @@
 //			call.in_phone_hash, IPC_GET_METHOD(call));
 		switch (IPC_GET_METHOD(call)) {
+		case LOADER_GET_TASKID:
+			loader_get_taskid(callid, &call);
+			continue;
 		case LOADER_SET_PATHNAME:
 			loader_set_pathname(callid, &call);
