Index: kernel/generic/include/cap/cap.h
===================================================================
--- kernel/generic/include/cap/cap.h	(revision 30f1a25ef3be685966ce1377e11888810d47aab9)
+++ kernel/generic/include/cap/cap.h	(revision e9e4068d0bf42f6853fd7e68bf8e7a390c20bdc6)
@@ -64,7 +64,5 @@
 struct phone;
 
-struct kobject;
 typedef struct kobject_ops {
-	bool (*reclaim)(struct kobject *);
 	void (*destroy)(void *);
 } kobject_ops_t;
Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision 30f1a25ef3be685966ce1377e11888810d47aab9)
+++ kernel/generic/include/ipc/ipc.h	(revision e9e4068d0bf42f6853fd7e68bf8e7a390c20bdc6)
@@ -82,4 +82,9 @@
 	waitq_t wq;
 
+	/**
+	 * Number of answers the answerbox is expecting to eventually arrive.
+	 */
+	atomic_t active_calls;
+
 	/** Phones connected to this answerbox. */
 	list_t connected_phones;
@@ -177,5 +182,5 @@
 extern slab_cache_t *phone_cache;
 
-extern answerbox_t *ipc_phone_0;
+extern answerbox_t *ipc_box_0;
 
 extern void ipc_init(void);
Index: kernel/generic/include/ipc/ipcrsc.h
===================================================================
--- kernel/generic/include/ipc/ipcrsc.h	(revision 30f1a25ef3be685966ce1377e11888810d47aab9)
+++ kernel/generic/include/ipc/ipcrsc.h	(revision e9e4068d0bf42f6853fd7e68bf8e7a390c20bdc6)
@@ -40,6 +40,5 @@
 #include <cap/cap.h>
 
-extern errno_t phone_alloc(task_t *, cap_handle_t *);
-extern bool phone_connect(cap_handle_t, answerbox_t *);
+extern errno_t phone_alloc(task_t *, bool, cap_handle_t *, kobject_t **);
 extern void phone_dealloc(cap_handle_t);
 
