Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision 0fe52ef6f9ff93ce0e6b31fe94d672377d33f55c)
+++ kernel/generic/include/ipc/ipc.h	(revision ab34cc996f19066bcba82ddd7e2ec4967374ee4b)
@@ -98,5 +98,8 @@
 typedef struct {
 	sysarg_t args[IPC_CALL_LEN];
-	/** Task which made or forwarded the call with IPC_FF_ROUTE_FROM_ME. */
+	/**
+	 * Task which made or forwarded the call with IPC_FF_ROUTE_FROM_ME,
+	 * or the task which answered the call.
+	 */
 	task_id_t task_id;
 	/** Phone which made or last masqueraded this call. */
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision 0fe52ef6f9ff93ce0e6b31fe94d672377d33f55c)
+++ kernel/generic/src/ipc/ipc.c	(revision ab34cc996f19066bcba82ddd7e2ec4967374ee4b)
@@ -230,4 +230,6 @@
 		}
 	}
+
+	call->data.task_id = TASK->taskid;
 	
 	if (do_lock)
Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision 0fe52ef6f9ff93ce0e6b31fe94d672377d33f55c)
+++ kernel/generic/src/ipc/sysipc.c	(revision ab34cc996f19066bcba82ddd7e2ec4967374ee4b)
@@ -253,7 +253,4 @@
 			/* The connection was accepted */
 			phone_connect(phoneid, &answer->sender->answerbox);
-			/* Set 'task ID' as arg3 and arg4 of response */
-			IPC_SET_ARG3(answer->data, LOWER32(TASK->taskid));
-			IPC_SET_ARG4(answer->data, UPPER32(TASK->taskid));
 			/* Set 'phone hash' as arg5 of response */
 			IPC_SET_ARG5(answer->data,
