Index: uspace/srv/net/tcp/sock.c
===================================================================
--- uspace/srv/net/tcp/sock.c	(revision 50b581dfc7ce944b68546e5369c46eca4750ef38)
+++ uspace/srv/net/tcp/sock.c	(revision 311929ece96bf4dc6018e75e0d12e512b9e541e4)
@@ -42,5 +42,4 @@
 #include <ipc/services.h>
 #include <ipc/socket.h>
-#include <net/modules.h>
 #include <net/socket.h>
 #include <ns.h>
@@ -144,10 +143,11 @@
 	sock->sock_core = sock_core;
 
-	refresh_answer(&answer, NULL);
 	SOCKET_SET_SOCKET_ID(answer, sock_id);
 
 	SOCKET_SET_DATA_FRAGMENT_SIZE(answer, FRAGMENT_SIZE);
 	SOCKET_SET_HEADER_SIZE(answer, sizeof(tcp_header_t));
-	answer_call(callid, EOK, &answer, 3);
+	
+	async_answer_3(callid, EOK, IPC_GET_ARG1(answer),
+	    IPC_GET_ARG2(answer), IPC_GET_ARG3(answer));
 }
 
@@ -468,12 +468,12 @@
 	assert(asock_core != NULL);
 
-	refresh_answer(&answer, NULL);
-
 	SOCKET_SET_DATA_FRAGMENT_SIZE(answer, FRAGMENT_SIZE);
 	SOCKET_SET_SOCKET_ID(answer, asock_id);
 	SOCKET_SET_ADDRESS_LENGTH(answer, sizeof(struct sockaddr_in));
-
-	answer_call(callid, asock_core->socket_id, &answer, 3);
-
+	
+	async_answer_3(callid, asock_core->socket_id,
+	    IPC_GET_ARG1(answer), IPC_GET_ARG2(answer),
+	    IPC_GET_ARG3(answer));
+	
 	/* Push one fragment notification to client's queue */
 	log_msg(LVL_DEBUG, "tcp_sock_accept(): notify data\n");
@@ -559,7 +559,8 @@
 	}
 
-	refresh_answer(&answer, NULL);
+	IPC_SET_ARG1(answer, 0);
 	SOCKET_SET_DATA_FRAGMENT_SIZE(answer, FRAGMENT_SIZE);
-	answer_call(callid, EOK, &answer, 2);
+	async_answer_2(callid, EOK, IPC_GET_ARG1(answer),
+	    IPC_GET_ARG2(answer));
 	fibril_mutex_unlock(&socket->lock);
 }
@@ -679,6 +680,6 @@
 
 	SOCKET_SET_READ_DATA_LENGTH(answer, length);
-	answer_call(callid, EOK, &answer, 1);
-
+	async_answer_1(callid, EOK, IPC_GET_ARG1(answer));
+	
 	/* Push one fragment notification to client's queue */
 	tcp_sock_notify_data(sock_core);
Index: uspace/srv/net/udp/sock.c
===================================================================
--- uspace/srv/net/udp/sock.c	(revision 50b581dfc7ce944b68546e5369c46eca4750ef38)
+++ uspace/srv/net/udp/sock.c	(revision 311929ece96bf4dc6018e75e0d12e512b9e541e4)
@@ -43,5 +43,4 @@
 #include <ipc/services.h>
 #include <ipc/socket.h>
-#include <net/modules.h>
 #include <net/socket.h>
 #include <ns.h>
@@ -134,12 +133,11 @@
 	assert(sock_core != NULL);
 	sock->sock_core = sock_core;
-
-
-	refresh_answer(&answer, NULL);
+	
 	SOCKET_SET_SOCKET_ID(answer, sock_id);
 
 	SOCKET_SET_DATA_FRAGMENT_SIZE(answer, FRAGMENT_SIZE);
 	SOCKET_SET_HEADER_SIZE(answer, sizeof(udp_header_t));
-	answer_call(callid, EOK, &answer, 3);
+	async_answer_3(callid, EOK, IPC_GET_ARG1(answer),
+	    IPC_GET_ARG2(answer), IPC_GET_ARG3(answer));
 }
 
@@ -369,9 +367,11 @@
 		}
 	}
-
-	refresh_answer(&answer, NULL);
+	
+	IPC_SET_ARG1(answer, 0);
 	SOCKET_SET_DATA_FRAGMENT_SIZE(answer, FRAGMENT_SIZE);
-	answer_call(callid, EOK, &answer, 2);
+	async_answer_2(callid, EOK, IPC_GET_ARG1(answer),
+	    IPC_GET_ARG2(answer));
 	fibril_mutex_unlock(&socket->lock);
+	
 out:
 	if (addr != NULL)
@@ -486,8 +486,10 @@
 
 	log_msg(LVL_DEBUG, "read_data_length <- %zu", length);
+	IPC_SET_ARG2(answer, 0);
 	SOCKET_SET_READ_DATA_LENGTH(answer, length);
 	SOCKET_SET_ADDRESS_LENGTH(answer, sizeof(addr));
-	answer_call(callid, EOK, &answer, 3);
-
+	async_answer_3(callid, EOK, IPC_GET_ARG1(answer),
+	    IPC_GET_ARG2(answer), IPC_GET_ARG3(answer));
+	
 	/* Push one fragment notification to client's queue */
 	udp_sock_notify_data(sock_core);
