Index: uspace/srv/net/tl/tcp/tcp_module.c
===================================================================
--- uspace/srv/net/tl/tcp/tcp_module.c	(revision 89e57ceef2a2fce4e3518b2109ffcd674896bf36)
+++ uspace/srv/net/tl/tcp/tcp_module.c	(revision 32efd865176bfa9c946bb85353ec87e270ab1dda)
@@ -44,5 +44,5 @@
 #include <async.h>
 #include <stdio.h>
-#include <err.h>
+#include <errno.h>
 #include <ipc/ipc.h>
 #include <ipc/services.h>
@@ -61,21 +61,27 @@
 int tl_module_start_standalone(async_client_conn_t client_connection)
 {
-	ERROR_DECLARE;
-	
+	ipcarg_t phonehash;
+	int rc;
+
 	async_set_client_connection(client_connection);
 	tcp_globals.net_phone = net_connect_module();
-	ERROR_PROPAGATE(pm_init());
-	
-	ipcarg_t phonehash;
-	if (ERROR_OCCURRED(tcp_initialize(client_connection)) ||
-	    ERROR_OCCURRED(REGISTER_ME(SERVICE_TCP, &phonehash))) {
-		pm_destroy();
-		return ERROR_CODE;
-	}
+
+	rc = pm_init();
+	if (rc != EOK)
+		return rc;
+
+	rc = tcp_initialize(client_connection);
+	if (rc != EOK)
+		goto out;
+
+	rc = REGISTER_ME(SERVICE_TCP, &phonehash);
+	if (rc != EOK)
+		goto out;
 	
 	async_manager();
 	
+out:
 	pm_destroy();
-	return EOK;
+	return rc;
 }
 
