Index: kernel/generic/src/ipc/event.c
===================================================================
--- kernel/generic/src/ipc/event.c	(revision fdd48986f412859789744f650391449ab6dd99ad)
+++ kernel/generic/src/ipc/event.c	(revision e2ab36f1e7abed06e401610969fa967f43774dd8)
@@ -161,4 +161,6 @@
 				IPC_SET_ARG5(call->data, a5);
 				
+				call->data.task_id = TASK ? TASK->taskid : 0;
+				
 				irq_spinlock_lock(&event->answerbox->irq_lock, true);
 				list_append(&call->link, &event->answerbox->irq_notifs);
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision fdd48986f412859789744f650391449ab6dd99ad)
+++ kernel/generic/src/ipc/ipc.c	(revision e2ab36f1e7abed06e401610969fa967f43774dd8)
@@ -294,5 +294,5 @@
 		atomic_inc(&phone->active_calls);
 		call->data.phone = phone;
-		call->data.task = TASK;
+		call->data.task_id = TASK->taskid;
 	}
 	
@@ -406,5 +406,5 @@
 			call->caller_phone = call->data.phone;
 		call->data.phone = newphone;
-		call->data.task = TASK;
+		call->data.task_id = TASK->taskid;
 	}
 	
Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision fdd48986f412859789744f650391449ab6dd99ad)
+++ kernel/generic/src/ipc/sysipc.c	(revision e2ab36f1e7abed06e401610969fa967f43774dd8)
@@ -54,4 +54,5 @@
 #include <mm/as.h>
 #include <print.h>
+#include <macros.h>
 
 /**
@@ -375,6 +376,6 @@
 				    IPC_GET_ARG2(*olddata),
 				    IPC_GET_ARG3(*olddata),
-				    (sysarg_t) olddata->task,
-				    (sysarg_t) TASK);
+				    LOWER32(olddata->task_id),
+				    UPPER32(olddata->task_id));
 				IPC_SET_RETVAL(answer->data, rc);
 			}
