Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision 357b5f55e6a14dd80329de7de87962172d4eb1d8)
+++ kernel/generic/include/ipc/ipc.h	(revision fdb9982c4a402d4d9c5df2cc4d6fe1fa66823fb9)
@@ -319,5 +319,8 @@
 typedef struct {
 	sysarg_t args[IPC_CALL_LEN];
+	/** Phone which made or last masqueraded this call. */
 	phone_t *phone;
+	/** Last task to perform _ipc_call(). */
+	struct task *task;
 } ipc_data_t;
 
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision 357b5f55e6a14dd80329de7de87962172d4eb1d8)
+++ kernel/generic/src/ipc/ipc.c	(revision fdb9982c4a402d4d9c5df2cc4d6fe1fa66823fb9)
@@ -296,4 +296,5 @@
 		call->data.phone = phone;
 	}
+	call->data.task = TASK;
 	
 	irq_spinlock_lock(&box->lock, true);
Index: uspace/lib/c/include/ipc/ipc.h
===================================================================
--- uspace/lib/c/include/ipc/ipc.h	(revision 357b5f55e6a14dd80329de7de87962172d4eb1d8)
+++ uspace/lib/c/include/ipc/ipc.h	(revision fdb9982c4a402d4d9c5df2cc4d6fe1fa66823fb9)
@@ -47,4 +47,5 @@
 	sysarg_t args[IPC_CALL_LEN];
 	sysarg_t in_phone_hash;
+	sysarg_t in_task_hash;
 } ipc_call_t;
 
