Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision a31efeb643914cadd04b764124af1a7ab5087f6c)
+++ kernel/generic/include/ipc/ipc.h	(revision 854c56404e598d97ec7618e179465613a3cdeba4)
@@ -112,4 +112,23 @@
  * These methods have special behaviour
  */
+/** Clone connection.
+ *
+ * The calling task clones one of its phones for the callee.
+ *
+ * - ARG1 - The caller sets ARG1 to the phone of the cloned connection.
+ *	  - The callee gets the new phone from ARG1.
+ * - on answer, the callee acknowledges the new connection by sending EOK back
+ *   or the kernel closes it
+ */
+#define IPC_M_CONNECTION_CLONE	1
+/** Protocol for CONNECT - ME
+ *
+ * Through this call, the recipient learns about the new cloned connection. 
+ * 
+ * - ARG5 - the kernel sets ARG5 to contain the hash of the used phone
+ * - on asnwer, the callee acknowledges the new connection by sending EOK back
+ *   or the kernel closes it
+ */
+#define IPC_M_CONNECT_ME	2
 /** Protocol for CONNECT - TO - ME 
  *
@@ -128,5 +147,5 @@
  *                       (on the receiving side) as ARG5 of the call.
  */
-#define IPC_M_CONNECT_TO_ME	1
+#define IPC_M_CONNECT_TO_ME	3	
 /** Protocol for CONNECT - ME - TO
  *
@@ -146,9 +165,9 @@
  *
  */
-#define IPC_M_CONNECT_ME_TO	2
+#define IPC_M_CONNECT_ME_TO	4	
 /** This message is sent to answerbox when the phone
  * is hung up
  */
-#define IPC_M_PHONE_HUNGUP	3
+#define IPC_M_PHONE_HUNGUP	5
 
 /** Send as_area over IPC.
@@ -160,5 +179,5 @@
  * - ARG1 - dst as_area base adress
  */
-#define IPC_M_SHARE_OUT		4	
+#define IPC_M_SHARE_OUT		6	
 
 /** Receive as_area over IPC.
@@ -172,5 +191,5 @@
  * - ARG2 - flags that will be used for sharing
  */
-#define IPC_M_SHARE_IN		5	
+#define IPC_M_SHARE_IN		7	
 
 /** Send data to another address space over IPC.
@@ -183,5 +202,5 @@
  * - ARG2 - final size of data to be copied
  */
-#define IPC_M_DATA_WRITE	6
+#define IPC_M_DATA_WRITE	8
 
 /** Receive data from another address space over IPC.
@@ -194,5 +213,5 @@
  * - ARG2 - final size of data to be copied
  */
-#define IPC_M_DATA_READ		7
+#define IPC_M_DATA_READ		9
 
 /** Debug the recipient.
@@ -200,5 +219,5 @@
  * - other arguments are specific to the debug method
  */
-#define IPC_M_DEBUG_ALL		8
+#define IPC_M_DEBUG_ALL		10
 
 /* Well-known methods */
Index: kernel/generic/include/ipc/ipcrsc.h
===================================================================
--- kernel/generic/include/ipc/ipcrsc.h	(revision a31efeb643914cadd04b764124af1a7ab5087f6c)
+++ kernel/generic/include/ipc/ipcrsc.h	(revision 854c56404e598d97ec7618e179465613a3cdeba4)
@@ -36,6 +36,9 @@
 #define KERN_IPCRSC_H_
 
+#include <proc/task.h>
+#include <ipc/ipc.h>
+
 extern call_t * get_call(unative_t callid);
-extern int phone_alloc(void);
+extern int phone_alloc(task_t *t);
 extern void phone_connect(int phoneid, answerbox_t *box);
 extern void phone_dealloc(int phoneid);
