Index: uspace/srv/net/ethip/ethip.c
===================================================================
--- uspace/srv/net/ethip/ethip.c	(revision b688fd884822ca3ea5bb45f1b6b2ca18b04efbcc)
+++ uspace/srv/net/ethip/ethip.c	(revision df138361db097bfad037b09eb2abbae6e0931ac3)
@@ -147,5 +147,5 @@
 	service_id_t sid;
 
-	sid = (service_id_t)IPC_GET_ARG1(*icall);
+	sid = (service_id_t) IPC_GET_ARG2(*icall);
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "ethip_client_conn(%u)", (unsigned)sid);
 	nic = ethip_nic_find_by_iplink_sid(sid);
Index: uspace/srv/net/ethip/ethip_nic.c
===================================================================
--- uspace/srv/net/ethip/ethip_nic.c	(revision b688fd884822ca3ea5bb45f1b6b2ca18b04efbcc)
+++ uspace/srv/net/ethip/ethip_nic.c	(revision df138361db097bfad037b09eb2abbae6e0931ac3)
@@ -162,5 +162,5 @@
 	}
 	
-	nic->sess = loc_service_connect(EXCHANGE_SERIALIZE, sid, 0);
+	nic->sess = loc_service_connect(sid, INTERFACE_DDF, 0);
 	if (nic->sess == NULL) {
 		log_msg(LOG_DEFAULT, LVL_ERROR, "Failed connecting '%s'", nic->svc_name);
Index: uspace/srv/net/inetsrv/inet_link.c
===================================================================
--- uspace/srv/net/inetsrv/inet_link.c	(revision b688fd884822ca3ea5bb45f1b6b2ca18b04efbcc)
+++ uspace/srv/net/inetsrv/inet_link.c	(revision df138361db097bfad037b09eb2abbae6e0931ac3)
@@ -177,5 +177,5 @@
 	}
 
-	ilink->sess = loc_service_connect(EXCHANGE_SERIALIZE, sid, 0);
+	ilink->sess = loc_service_connect(sid, INTERFACE_IPLINK, 0);
 	if (ilink->sess == NULL) {
 		log_msg(LOG_DEFAULT, LVL_ERROR, "Failed connecting '%s'", ilink->svc_name);
Index: uspace/srv/net/inetsrv/inetsrv.c
===================================================================
--- uspace/srv/net/inetsrv/inetsrv.c	(revision b688fd884822ca3ea5bb45f1b6b2ca18b04efbcc)
+++ uspace/srv/net/inetsrv/inetsrv.c	(revision df138361db097bfad037b09eb2abbae6e0931ac3)
@@ -77,16 +77,30 @@
 };
 
-static void inet_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
-
 static FIBRIL_MUTEX_INITIALIZE(client_list_lock);
 static LIST_INITIALIZE(client_list);
 
+static void inet_default_conn(ipc_callid_t, ipc_call_t *, void *);
+
 static int inet_init(void)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_init()");
 	
-	async_set_fallback_port_handler(inet_client_conn, NULL);
-	
-	int rc = loc_server_register(NAME);
+	port_id_t port;
+	int rc = async_create_port(INTERFACE_INET,
+	    inet_default_conn, NULL, &port);
+	if (rc != EOK)
+		return rc;
+	
+	rc = async_create_port(INTERFACE_INETCFG,
+	    inet_cfg_conn, NULL, &port);
+	if (rc != EOK)
+		return rc;
+	
+	rc = async_create_port(INTERFACE_INETPING,
+	    inetping_conn, NULL, &port);
+	if (rc != EOK)
+		return rc;
+	
+	rc = loc_server_register(NAME);
 	if (rc != EOK) {
 		log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server (%d).", rc);
@@ -95,20 +109,5 @@
 	
 	service_id_t sid;
-	rc = loc_service_register_with_iface(SERVICE_NAME_INET, &sid,
-	    INET_PORT_DEFAULT);
-	if (rc != EOK) {
-		log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
-		return EEXIST;
-	}
-	
-	rc = loc_service_register_with_iface(SERVICE_NAME_INETCFG, &sid,
-	    INET_PORT_CFG);
-	if (rc != EOK) {
-		log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
-		return EEXIST;
-	}
-	
-	rc = loc_service_register_with_iface(SERVICE_NAME_INETPING, &sid,
-	    INET_PORT_PING);
+	rc = loc_service_register(SERVICE_NAME_INET, &sid);
 	if (rc != EOK) {
 		log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service (%d).", rc);
@@ -429,26 +428,4 @@
 }
 
-static void inet_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
-{
-	sysarg_t port;
-
-	port = IPC_GET_ARG1(*icall);
-
-	switch (port) {
-	case INET_PORT_DEFAULT:
-		inet_default_conn(iid, icall, arg);
-		break;
-	case INET_PORT_CFG:
-		inet_cfg_conn(iid, icall, arg);
-		break;
-	case INET_PORT_PING:
-		inetping_conn(iid, icall, arg);
-		break;
-	default:
-		async_answer_0(iid, ENOTSUP);
-		break;
-	}
-}
-
 static inet_client_t *inet_client_find(uint8_t proto)
 {
Index: uspace/srv/net/slip/slip.c
===================================================================
--- uspace/srv/net/slip/slip.c	(revision b688fd884822ca3ea5bb45f1b6b2ca18b04efbcc)
+++ uspace/srv/net/slip/slip.c	(revision df138361db097bfad037b09eb2abbae6e0931ac3)
@@ -328,5 +328,5 @@
 	 * char_dev at the same time.
 	 */
-	sess_out = loc_service_connect(EXCHANGE_SERIALIZE, svcid, 0);
+	sess_out = loc_service_connect(svcid, INTERFACE_DDF, 0);
 	if (!sess_out) {
 		log_msg(LOG_DEFAULT, LVL_ERROR,
@@ -337,5 +337,5 @@
 	slip_iplink.arg = sess_out;
 
-	sess_in = loc_service_connect(EXCHANGE_SERIALIZE, svcid, 0);
+	sess_in = loc_service_connect(svcid, INTERFACE_DDF, 0);
 	if (!sess_in) {
 		log_msg(LOG_DEFAULT, LVL_ERROR,
