Index: kernel/generic/src/proc/program.c
===================================================================
--- kernel/generic/src/proc/program.c	(revision 0f81ceb764d3f1f6da8afbeeb9de80a2e8226028)
+++ kernel/generic/src/proc/program.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
@@ -191,8 +191,7 @@
 /** Syscall for creating a new loader instance from userspace.
  *
- * Creates a new task from the program loader image, connects a phone
- * to it and stores the phone id into the provided buffer.
- *
- * @param uspace_phone_id	Userspace address where to store the phone id.
+ * Creates a new task from the program loader image and sets
+ * the task name.
+ *
  * @param name			Name to set on the new task (typically the same
  *				as the command used to execute it).
@@ -200,20 +199,9 @@
  * @return 0 on success or an error code from @ref errno.h.
  */
-unative_t sys_program_spawn_loader(int *uspace_phone_id, char *uspace_name,
-    size_t name_len)
+unative_t sys_program_spawn_loader(char *uspace_name, size_t name_len)
 {
 	program_t p;
-	int fake_id;
 	int rc;
-	int phone_id;
 	char namebuf[TASK_NAME_BUFLEN];
-
-	fake_id = 0;
-
-	/* Before we even try creating the task, see if we can write the id */
-	rc = (unative_t) copy_to_uspace(uspace_phone_id, &fake_id,
-	    sizeof(fake_id));
-	if (rc != 0)
-		return rc;
 
 	/* Cap length of name and copy it from userspace. */
@@ -228,10 +216,4 @@
 	namebuf[name_len] = '\0';
 
-	/* Allocate the phone for communicating with the new task. */
-
-	phone_id = phone_alloc();
-	if (phone_id < 0)
-		return ELIMIT;
-
 	/* Spawn the new task. */
 
@@ -240,16 +222,4 @@
 		return rc;
 
-	phone_connect(phone_id, &p.task->answerbox);
-
-	/* No need to aquire lock before task_ready() */
-	rc = (unative_t) copy_to_uspace(uspace_phone_id, &phone_id,
-	    sizeof(phone_id));
-	if (rc != 0) {
-		/* Ooops */
-		ipc_phone_hangup(&TASK->phones[phone_id]);
-		task_kill(p.task->taskid);
-		return rc;
-	}
-
 	// FIXME: control the capabilities
 	cap_set(p.task, cap_get(TASK));
