Index: libipc/generic/ipc.c
===================================================================
--- libipc/generic/ipc.c	(revision 8a568e35b00fa4fcb8f95f836684c6e1217a8dbf)
+++ libipc/generic/ipc.c	(revision 043dcc27a5fffcd359e0accdf1a6122945f3aec9)
@@ -273,4 +273,9 @@
 }
 
+int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, ipcarg_t arg1)
+{
+	return __SYSCALL4(SYS_IPC_FORWARD_FAST, callid, phoneid, method, arg1);
+}
+
 /*
 int ipc_open_dgrconn(int pohoneid, size_t max_dgram)
Index: libipc/include/ipc.h
===================================================================
--- libipc/include/ipc.h	(revision 8a568e35b00fa4fcb8f95f836684c6e1217a8dbf)
+++ libipc/include/ipc.h	(revision 043dcc27a5fffcd359e0accdf1a6122945f3aec9)
@@ -38,5 +38,5 @@
 typedef struct {
 	ipcarg_t args[IPC_CALL_LEN];
-	ipcarg_t phoneid;
+	ipcarg_t in_phone_hash;
 } ipc_call_t ;
 typedef sysarg_t ipc_callid_t;
@@ -59,12 +59,13 @@
 
 #define ipc_call_async(phoneid,method,arg1,private, callback) (ipc_call_async_2(phoneid, method, arg1, 0, private, callback))
-void ipc_call_async_2(int phoneid, ipcarg_t method, ipcarg_t arg1,
+extern void ipc_call_async_2(int phoneid, ipcarg_t method, ipcarg_t arg1,
 		      ipcarg_t arg2, void *private,
 		      ipc_async_callback_t callback);
-int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phone);
-int ipc_connect_me_to(int phoneid, int arg1, int arg2);
-int ipc_hangup(int phoneid);
-int ipc_register_irq(int irq, irq_code_t *code);
-int ipc_unregister_irq(int irq);
+extern int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phone);
+extern int ipc_connect_me_to(int phoneid, int arg1, int arg2);
+extern int ipc_hangup(int phoneid);
+extern int ipc_register_irq(int irq, irq_code_t *code);
+extern int ipc_unregister_irq(int irq);
+extern int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method, ipcarg_t arg1);
 
 #endif
