Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision cd529c4c5856298906f124a6f50c2619d97c48ad)
+++ kernel/generic/include/ipc/ipc.h	(revision cfaa35a2627b7c78cd80ef394dfcb862cb582f7b)
@@ -106,5 +106,6 @@
 
 typedef struct {
-	link_t link;
+	/** Answerbox link. */
+	link_t ab_link;
 	
 	unsigned int flags;
Index: kernel/generic/src/ipc/event.c
===================================================================
--- kernel/generic/src/ipc/event.c	(revision cd529c4c5856298906f124a6f50c2619d97c48ad)
+++ kernel/generic/src/ipc/event.c	(revision cfaa35a2627b7c78cd80ef394dfcb862cb582f7b)
@@ -163,9 +163,13 @@
 				call->data.task_id = TASK ? TASK->taskid : 0;
 				
-				irq_spinlock_lock(&event->answerbox->irq_lock, true);
-				list_append(&call->link, &event->answerbox->irq_notifs);
-				irq_spinlock_unlock(&event->answerbox->irq_lock, true);
-				
-				waitq_wakeup(&event->answerbox->wq, WAKEUP_FIRST);
+				irq_spinlock_lock(&event->answerbox->irq_lock,
+				    true);
+				list_append(&call->ab_link,
+				    &event->answerbox->irq_notifs);
+				irq_spinlock_unlock(&event->answerbox->irq_lock,
+				    true);
+				
+				waitq_wakeup(&event->answerbox->wq,
+				    WAKEUP_FIRST);
 				
 				if (mask)
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision cd529c4c5856298906f124a6f50c2619d97c48ad)
+++ kernel/generic/src/ipc/ipc.c	(revision cfaa35a2627b7c78cd80ef394dfcb862cb582f7b)
@@ -191,5 +191,5 @@
 		irq_spinlock_lock(&callerbox->lock, true);
 	
-	list_append(&call->link, &callerbox->answers);
+	list_append(&call->ab_link, &callerbox->answers);
 	
 	if (do_lock)
@@ -209,5 +209,5 @@
 	/* Remove from active box */
 	irq_spinlock_lock(&box->lock, true);
-	list_remove(&call->link);
+	list_remove(&call->ab_link);
 	irq_spinlock_unlock(&box->lock, true);
 	
@@ -255,5 +255,5 @@
 	
 	irq_spinlock_lock(&box->lock, true);
-	list_append(&call->link, &box->calls);
+	list_append(&call->ab_link, &box->calls);
 	irq_spinlock_unlock(&box->lock, true);
 	
@@ -356,5 +356,5 @@
 	TASK->ipc_info.forwarded++;
 	irq_spinlock_pass(&TASK->lock, &oldbox->lock);
-	list_remove(&call->link);
+	list_remove(&call->ab_link);
 	irq_spinlock_unlock(&oldbox->lock, true);
 	
@@ -406,6 +406,6 @@
 		
 		request = list_get_instance(list_first(&box->irq_notifs),
-		    call_t, link);
-		list_remove(&request->link);
+		    call_t, ab_link);
+		list_remove(&request->ab_link);
 		
 		irq_spinlock_unlock(&box->irq_lock, false);
@@ -416,6 +416,6 @@
 		/* Handle asynchronous answers */
 		request = list_get_instance(list_first(&box->answers),
-		    call_t, link);
-		list_remove(&request->link);
+		    call_t, ab_link);
+		list_remove(&request->ab_link);
 		atomic_dec(&request->data.phone->active_calls);
 	} else if (!list_empty(&box->calls)) {
@@ -425,9 +425,9 @@
 		/* Handle requests */
 		request = list_get_instance(list_first(&box->calls),
-		    call_t, link);
-		list_remove(&request->link);
+		    call_t, ab_link);
+		list_remove(&request->ab_link);
 		
 		/* Append request to dispatch queue */
-		list_append(&request->link, &box->dispatched_calls);
+		list_append(&request->ab_link, &box->dispatched_calls);
 	} else {
 		/* This can happen regularly after ipc_cleanup */
@@ -455,9 +455,10 @@
 {
 	while (!list_empty(lst)) {
-		call_t *call = list_get_instance(list_first(lst), call_t, link);
+		call_t *call = list_get_instance(list_first(lst), call_t,
+		    ab_link);
 		if (call->buffer)
 			free(call->buffer);
 		
-		list_remove(&call->link);
+		list_remove(&call->ab_link);
 		
 		IPC_SET_RETVAL(call->data, EHANGUP);
@@ -689,5 +690,5 @@
 	printf(" --- incomming calls ---\n");
 	list_foreach(task->answerbox.calls, cur) {
-		call_t *call = list_get_instance(cur, call_t, link);
+		call_t *call = list_get_instance(cur, call_t, ab_link);
 		
 #ifdef __32_BITS__
@@ -709,5 +710,5 @@
 	printf(" --- dispatched calls ---\n");
 	list_foreach(task->answerbox.dispatched_calls, cur) {
-		call_t *call = list_get_instance(cur, call_t, link);
+		call_t *call = list_get_instance(cur, call_t, ab_link);
 		
 #ifdef __32_BITS__
@@ -729,5 +730,5 @@
 	printf(" --- incoming answers ---\n");
 	list_foreach(task->answerbox.answers, cur) {
-		call_t *call = list_get_instance(cur, call_t, link);
+		call_t *call = list_get_instance(cur, call_t, ab_link);
 		
 #ifdef __32_BITS__
Index: kernel/generic/src/ipc/ipcrsc.c
===================================================================
--- kernel/generic/src/ipc/ipcrsc.c	(revision cd529c4c5856298906f124a6f50c2619d97c48ad)
+++ kernel/generic/src/ipc/ipcrsc.c	(revision cfaa35a2627b7c78cd80ef394dfcb862cb582f7b)
@@ -151,5 +151,5 @@
 	
 	list_foreach(TASK->answerbox.dispatched_calls, lst) {
-		call_t *call = list_get_instance(lst, call_t, link);
+		call_t *call = list_get_instance(lst, call_t, ab_link);
 		if ((sysarg_t) call == callid) {
 			result = call;
Index: kernel/generic/src/ipc/irq.c
===================================================================
--- kernel/generic/src/ipc/irq.c	(revision cd529c4c5856298906f124a6f50c2619d97c48ad)
+++ kernel/generic/src/ipc/irq.c	(revision cfaa35a2627b7c78cd80ef394dfcb862cb582f7b)
@@ -510,5 +510,5 @@
 {
 	irq_spinlock_lock(&irq->notif_cfg.answerbox->irq_lock, false);
-	list_append(&call->link, &irq->notif_cfg.answerbox->irq_notifs);
+	list_append(&call->ab_link, &irq->notif_cfg.answerbox->irq_notifs);
 	irq_spinlock_unlock(&irq->notif_cfg.answerbox->irq_lock, false);
 	
