Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision 5d494b3f7a42392f3a69ba78ee3c67c3969e5041)
+++ kernel/generic/include/ipc/ipc.h	(revision 79dbc3efc94984b1077fba8b530bcf8b5e5e6ac4)
@@ -283,21 +283,20 @@
 
 extern void ipc_init(void);
-extern call_t * ipc_wait_for_call(answerbox_t *box, uint32_t usec, int flags);
-extern void ipc_answer(answerbox_t *box, call_t *request);
-extern int ipc_call(phone_t *phone, call_t *call);
-extern void ipc_call_sync(phone_t *phone, call_t *request);
-extern void ipc_phone_init(phone_t *phone);
-extern void ipc_phone_connect(phone_t *phone, answerbox_t *box);
-extern void ipc_call_free(call_t *call);
-extern call_t * ipc_call_alloc(int flags);
-extern void ipc_answerbox_init(answerbox_t *box);
-extern void ipc_call_static_init(call_t *call);
+extern call_t * ipc_wait_for_call(answerbox_t *, uint32_t, int);
+extern void ipc_answer(answerbox_t *, call_t *);
+extern int ipc_call(phone_t *, call_t *);
+extern void ipc_call_sync(phone_t *, call_t *);
+extern void ipc_phone_init(phone_t *);
+extern void ipc_phone_connect(phone_t *, answerbox_t *);
+extern void ipc_call_free(call_t *);
+extern call_t * ipc_call_alloc(int);
+extern void ipc_answerbox_init(answerbox_t *, struct task *);
+extern void ipc_call_static_init(call_t *);
 extern void task_print_list(void);
-extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox,
-    int mode);
+extern int ipc_forward(call_t *, phone_t *, answerbox_t *, int);
 extern void ipc_cleanup(void);
-extern int ipc_phone_hangup(phone_t *phone);
-extern void ipc_backsend_err(phone_t *phone, call_t *call, unative_t err);
-extern void ipc_print_task(task_id_t taskid);
+extern int ipc_phone_hangup(phone_t *);
+extern void ipc_backsend_err(phone_t *, call_t *, unative_t);
+extern void ipc_print_task(task_id_t);
 
 extern answerbox_t *ipc_phone_0;
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision 5d494b3f7a42392f3a69ba78ee3c67c3969e5041)
+++ kernel/generic/src/ipc/ipc.c	(revision 79dbc3efc94984b1077fba8b530bcf8b5e5e6ac4)
@@ -118,6 +118,7 @@
  *
  * @param box		Answerbox structure to be initialized.
- */
-void ipc_answerbox_init(answerbox_t *box)
+ * @param task		Task to which the answerbox belongs.
+ */
+void ipc_answerbox_init(answerbox_t *box, task_t *task)
 {
 	spinlock_initialize(&box->lock, "ipc_box_lock");
@@ -130,5 +131,5 @@
 	list_initialize(&box->irq_notifs);
 	list_initialize(&box->irq_head);
-	box->task = TASK;
+	box->task = task;
 }
 
@@ -173,5 +174,5 @@
 	answerbox_t sync_box; 
 
-	ipc_answerbox_init(&sync_box);
+	ipc_answerbox_init(&sync_box, TASK);
 
 	/* We will receive data in a special box. */
Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision 5d494b3f7a42392f3a69ba78ee3c67c3969e5041)
+++ kernel/generic/src/proc/task.c	(revision 79dbc3efc94984b1077fba8b530bcf8b5e5e6ac4)
@@ -172,5 +172,5 @@
 	ta->cycles = 0;
 	
-	ipc_answerbox_init(&ta->answerbox);
+	ipc_answerbox_init(&ta->answerbox, ta);
 	for (i = 0; i < IPC_MAX_PHONES; i++)
 		ipc_phone_init(&ta->phones[i]);
