Index: uspace/srv/net/il/arp/arp.c
===================================================================
--- uspace/srv/net/il/arp/arp.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/il/arp/arp.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -845,8 +845,9 @@
 	
 	*count = 0;
+	
+	if (!IPC_GET_IMETHOD(*call))
+		return EOK;
+	
 	switch (IPC_GET_IMETHOD(*call)) {
-	case IPC_M_PHONE_HUNGUP:
-		return EOK;
-	
 	case NET_ARP_DEVICE:
 		rc = measured_strings_receive(&address, &data, 1);
Index: uspace/srv/net/il/ip/ip.c
===================================================================
--- uspace/srv/net/il/ip/ip.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/il/ip/ip.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -76,4 +76,7 @@
 #include <il_remote.h>
 #include <il_skel.h>
+
+// FIXME: remove this header
+#include <kernel/ipc/ipc_methods.h>
 
 /** IP module name. */
@@ -1913,8 +1916,9 @@
 	
 	*answer_count = 0;
+	
+	if (!IPC_GET_IMETHOD(*call))
+		return EOK;
+	
 	switch (IPC_GET_IMETHOD(*call)) {
-	case IPC_M_PHONE_HUNGUP:
-		return EOK;
-	
 	case IPC_M_CONNECT_TO_ME:
 		return ip_register(IL_GET_PROTO(*call), IL_GET_SERVICE(*call),
Index: uspace/srv/net/net/net.c
===================================================================
--- uspace/srv/net/net/net.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/net/net.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -41,4 +41,5 @@
 #include <ctype.h>
 #include <ddi.h>
+#include <ns.h>
 #include <errno.h>
 #include <malloc.h>
@@ -339,5 +340,5 @@
 		goto out;
 	
-	rc = async_connect_to_me(PHONE_NS, SERVICE_NETWORKING, 0, 0, NULL);
+	rc = service_register(SERVICE_NETWORKING);
 	if (rc != EOK)
 		goto out;
@@ -638,7 +639,9 @@
 	
 	*answer_count = 0;
+	
+	if (!IPC_GET_IMETHOD(*call))
+		return EOK;
+	
 	switch (IPC_GET_IMETHOD(*call)) {
-	case IPC_M_PHONE_HUNGUP:
-		return EOK;
 	case NET_NET_GET_DEVICE_CONF:
 		rc = measured_strings_receive(&strings, &data,
@@ -703,5 +706,5 @@
 		
 		/* End if told to either by the message or the processing result */
-		if ((IPC_GET_IMETHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP))
+		if ((!IPC_GET_IMETHOD(call)) || (res == EHANGUP))
 			return;
 		
Index: uspace/srv/net/netif/lo/lo.c
===================================================================
--- uspace/srv/net/netif/lo/lo.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/netif/lo/lo.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -39,4 +39,5 @@
 #include <stdio.h>
 #include <str.h>
+#include <ns.h>
 #include <ipc/services.h>
 #include <ipc/nil.h>
@@ -164,5 +165,5 @@
 int netif_initialize(void)
 {
-	return async_connect_to_me(PHONE_NS, SERVICE_LO, 0, 0, NULL);
+	return service_register(SERVICE_LO);
 }
 
Index: uspace/srv/net/nil/eth/eth.c
===================================================================
--- uspace/srv/net/nil/eth/eth.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/nil/eth/eth.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -59,4 +59,7 @@
 #include <packet_remote.h>
 #include <nil_skel.h>
+
+// FIXME: remove this header
+#include <kernel/ipc/ipc_methods.h>
 
 #include "eth.h"
@@ -846,8 +849,9 @@
 	
 	*answer_count = 0;
+	
+	if (!IPC_GET_IMETHOD(*call))
+		return EOK;
+	
 	switch (IPC_GET_IMETHOD(*call)) {
-	case IPC_M_PHONE_HUNGUP:
-		return EOK;
-	
 	case NET_NIL_DEVICE:
 		return eth_device_message(IPC_GET_DEVICE(*call),
Index: uspace/srv/net/nil/nildummy/nildummy.c
===================================================================
--- uspace/srv/net/nil/nildummy/nildummy.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/nil/nildummy/nildummy.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -54,4 +54,7 @@
 #include <nil_skel.h>
 
+// FIXME: remove this header
+#include <kernel/ipc/ipc_methods.h>
+
 #include "nildummy.h"
 
@@ -393,8 +396,9 @@
 	
 	*answer_count = 0;
+	
+	if (!IPC_GET_IMETHOD(*call))
+		return EOK;
+	
 	switch (IPC_GET_IMETHOD(*call)) {
-	case IPC_M_PHONE_HUNGUP:
-		return EOK;
-	
 	case NET_NIL_DEVICE:
 		return nildummy_device_message(IPC_GET_DEVICE(*call),
Index: uspace/srv/net/tl/icmp/icmp.c
===================================================================
--- uspace/srv/net/tl/icmp/icmp.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/tl/icmp/icmp.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -612,9 +612,11 @@
 static void icmp_receiver(ipc_callid_t iid, ipc_call_t *icall)
 {
-	bool loop = true;
 	packet_t *packet;
 	int rc;
 	
-	while (loop) {
+	while (true) {
+		if (!IPC_GET_IMETHOD(*icall))
+			break;
+		
 		switch (IPC_GET_IMETHOD(*icall)) {
 		case NET_TL_RECEIVED:
@@ -629,7 +631,4 @@
 			async_answer_0(iid, (sysarg_t) rc);
 			break;
-		case IPC_M_PHONE_HUNGUP:
-			loop = false;
-			continue;
 		default:
 			async_answer_0(iid, (sysarg_t) ENOTSUP);
Index: uspace/srv/net/tl/tcp/tcp.c
===================================================================
--- uspace/srv/net/tl/tcp/tcp.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/tl/tcp/tcp.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -38,4 +38,5 @@
 #include <assert.h>
 #include <async.h>
+#include <async_obsolete.h>
 #include <fibril_synch.h>
 #include <malloc.h>
@@ -72,4 +73,7 @@
 #include "tcp.h"
 #include "tcp_header.h"
+
+// FIXME: remove this header
+#include <kernel/ipc/ipc_methods.h>
 
 /** TCP module name. */
@@ -799,5 +803,5 @@
 
 	/* Notify the destination socket */
-	async_msg_5(socket->phone, NET_SOCKET_RECEIVED,
+	async_obsolete_msg_5(socket->phone, NET_SOCKET_RECEIVED,
 	    (sysarg_t) socket->socket_id,
 	    ((packet_dimension->content < socket_data->data_fragment_size) ?
@@ -820,5 +824,5 @@
 
 	/* Notify the destination socket */
-	async_msg_5(socket->phone, NET_SOCKET_RECEIVED,
+	async_obsolete_msg_5(socket->phone, NET_SOCKET_RECEIVED,
 	    (sysarg_t) socket->socket_id,
 	    0, 0, 0,
@@ -1078,5 +1082,5 @@
 		if (rc == EOK) {
 			/* Notify the destination socket */
-			async_msg_5(socket->phone, NET_SOCKET_ACCEPTED,
+			async_obsolete_msg_5(socket->phone, NET_SOCKET_ACCEPTED,
 			    (sysarg_t) listening_socket->socket_id,
 			    socket_data->data_fragment_size, TCP_HEADER_SIZE,
@@ -1269,5 +1273,4 @@
 {
 	int res;
-	bool keep_on_going = true;
 	socket_cores_t local_sockets;
 	int app_phone = IPC_GET_PHONE(call);
@@ -1293,5 +1296,5 @@
 	fibril_rwlock_initialize(&lock);
 
-	while (keep_on_going) {
+	while (true) {
 
 		/* Answer the call */
@@ -1301,12 +1304,12 @@
 		/* Get the next call */
 		callid = async_get_call(&call);
+		
+		if (!IPC_GET_IMETHOD(call)) {
+			res = EHANGUP;
+			break;
+		}
 
 		/* Process the call */
 		switch (IPC_GET_IMETHOD(call)) {
-		case IPC_M_PHONE_HUNGUP:
-			keep_on_going = false;
-			res = EHANGUP;
-			break;
-
 		case NET_SOCKET:
 			socket_data =
@@ -1506,5 +1509,5 @@
 
 	/* Release the application phone */
-	async_hangup(app_phone);
+	async_obsolete_hangup(app_phone);
 
 	printf("release\n");
Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision 0743493a4e08f4592e45edfc40bfa33c3c4bacde)
+++ uspace/srv/net/tl/udp/udp.c	(revision 79a141a1d398510dededba42ea38c1e569fd6933)
@@ -37,4 +37,5 @@
 
 #include <async.h>
+#include <async_obsolete.h>
 #include <fibril_synch.h>
 #include <malloc.h>
@@ -69,4 +70,7 @@
 #include "udp.h"
 #include "udp_header.h"
+
+// FIXME: remove this header
+#include <kernel/ipc/ipc_methods.h>
 
 /** UDP module name. */
@@ -299,5 +303,5 @@
 	/* Notify the destination socket */
 	fibril_rwlock_write_unlock(&udp_globals.lock);
-	async_msg_5(socket->phone, NET_SOCKET_RECEIVED,
+	async_obsolete_msg_5(socket->phone, NET_SOCKET_RECEIVED,
 	    (sysarg_t) socket->socket_id, packet_dimension->content, 0, 0,
 	    (sysarg_t) fragments);
@@ -748,5 +752,4 @@
 {
 	int res;
-	bool keep_on_going = true;
 	socket_cores_t local_sockets;
 	int app_phone = IPC_GET_PHONE(call);
@@ -773,5 +776,5 @@
 	socket_cores_initialize(&local_sockets);
 
-	while (keep_on_going) {
+	while (true) {
 
 		/* Answer the call */
@@ -783,12 +786,12 @@
 		/* Get the next call */
 		callid = async_get_call(&call);
+		
+		if (!IPC_GET_IMETHOD(call)) {
+			res = EHANGUP;
+			break;
+		}
 
 		/* Process the call */
 		switch (IPC_GET_IMETHOD(call)) {
-		case IPC_M_PHONE_HUNGUP:
-			keep_on_going = false;
-			res = EHANGUP;
-			break;
-
 		case NET_SOCKET:
 			socket_id = SOCKET_GET_SOCKET_ID(call);
@@ -880,5 +883,5 @@
 
 	/* Release the application phone */
-	async_hangup(app_phone);
+	async_obsolete_hangup(app_phone);
 
 	/* Release all local sockets */
