Index: uspace/lib/c/generic/async/client.c
===================================================================
--- uspace/lib/c/generic/async/client.c	(revision f787c8e603e6091f428e7d4b79342b95a4fc26f4)
+++ uspace/lib/c/generic/async/client.c	(revision b13d80b2d3d6107331beeefec2ede2df8f661cba)
@@ -937,6 +937,7 @@
 	sysarg_t _flags = 0;
 	sysarg_t _dst = (sysarg_t) -1;
-	errno_t res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size,
-	    arg, NULL, &_flags, NULL, &_dst);
+	errno_t res = async_req_3_5(exch, IPC_M_SHARE_IN, (sysarg_t) size,
+	    (sysarg_t) __progsymbols.end, arg, NULL, &_flags, NULL, NULL,
+	    &_dst);
 
 	if (flags)
Index: uspace/lib/c/generic/async/server.c
===================================================================
--- uspace/lib/c/generic/async/server.c	(revision f787c8e603e6091f428e7d4b79342b95a4fc26f4)
+++ uspace/lib/c/generic/async/server.c	(revision b13d80b2d3d6107331beeefec2ede2df8f661cba)
@@ -1228,7 +1228,5 @@
 	assert(call);
 
-	// FIXME: The source has no business deciding destination address.
-	return ipc_answer_3(call->cap_handle, EOK, (sysarg_t) src, (sysarg_t) flags,
-	    (sysarg_t) __progsymbols.end);
+	return ipc_answer_2(call->cap_handle, EOK, (sysarg_t) src, (sysarg_t) flags);
 }
 
