Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision d40a8ffa6b8ec244d5fe541f890ee182cc6727a9)
+++ kernel/generic/include/ipc/ipc.h	(revision b3cd9eb53290f21cd8d641b59597ef033013237e)
@@ -100,4 +100,12 @@
 /* Forwarding flags. */
 #define IPC_FF_NONE		0
+/**
+ * The call will be routed as though it was initially sent via the phone used to
+ * forward it. This feature is intended to support the situation in which the
+ * forwarded call needs to be handled by the same connection fibril as any other
+ * calls that were initially sent by the forwarder to the same destination. This
+ * flag has no imapct on routing replies.
+ */
+#define IPC_FF_ROUTE_FROM_ME	(1 << 0)
 
 /* System-specific methods - only through special syscalls
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision d40a8ffa6b8ec244d5fe541f890ee182cc6727a9)
+++ kernel/generic/src/ipc/ipc.c	(revision b3cd9eb53290f21cd8d641b59597ef033013237e)
@@ -343,4 +343,7 @@
 	list_remove(&call->link);
 	spinlock_unlock(&oldbox->lock);
+
+	if (mode & IPC_FF_ROUTE_FROM_ME)
+		call->data.phone = newphone;
 
 	return ipc_call(newphone, call);
