Index: uspace/lib/inet/src/iplink_srv.c
===================================================================
--- uspace/lib/inet/src/iplink_srv.c	(revision b9be9b05d752d24c03c7c6bbcf6925a1335216ee)
+++ uspace/lib/inet/src/iplink_srv.c	(revision ffed09d79c4f737ed0a49581161c8c053ce34980)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -74,6 +74,9 @@
 
 	rc = async_data_read_finalize(&call, &mac, size);
-	if (rc != EOK)
-		async_answer_0(&call, rc);
+	if (rc != EOK) {
+		async_answer_0(&call, rc);
+		async_answer_0(icall, rc);
+		return;
+	}
 
 	async_answer_0(icall, rc);
@@ -94,4 +97,5 @@
 	rc = srv->ops->set_mac48(srv, &mac);
 	if (rc != EOK) {
+		async_answer_0(&call, rc);
 		async_answer_0(icall, rc);
 		return;
@@ -99,6 +103,9 @@
 
 	rc = async_data_read_finalize(&call, &mac, sizeof(eth_addr_t));
-	if (rc != EOK)
-		async_answer_0(&call, rc);
+	if (rc != EOK) {
+		async_answer_0(&call, rc);
+		async_answer_0(icall, rc);
+		return;
+	}
 
 	async_answer_0(icall, rc);
@@ -109,4 +116,5 @@
 	ipc_call_t call;
 	size_t size;
+
 	if (!async_data_write_receive(&call, &size)) {
 		async_answer_0(&call, EREFUSED);
@@ -126,4 +134,5 @@
 		async_answer_0(&call, rc);
 		async_answer_0(icall, rc);
+		return;
 	}
 
@@ -136,4 +145,5 @@
 	ipc_call_t call;
 	size_t size;
+
 	if (!async_data_write_receive(&call, &size)) {
 		async_answer_0(&call, EREFUSED);
@@ -153,4 +163,5 @@
 		async_answer_0(&call, rc);
 		async_answer_0(icall, rc);
+		return;
 	}
 
@@ -181,7 +192,7 @@
 {
 	iplink_sdu6_t sdu;
-
-	ipc_call_t call;
-	size_t size;
+	ipc_call_t call;
+	size_t size;
+
 	if (!async_data_write_receive(&call, &size)) {
 		async_answer_0(&call, EREFUSED);
