diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c
index 9a2333d..77d84b3 100644
--- a/src/libmsc/a_iface_bssap.c
+++ b/src/libmsc/a_iface_bssap.c
@@ -260,8 +260,6 @@
 	uint16_t lac = 0;
 	uint8_t data_length;
 	const uint8_t *data;
-	int rc;
-
 	struct gsm_network *network = a_conn_info->network;
 	struct gsm_subscriber_connection *conn;
 
@@ -345,17 +343,8 @@
 	conn = subscr_conn_allocate_a(a_conn_info, network, lac, scu, a_conn_info->conn_id);
 
 	/* Handover location update to the MSC code */
-	rc = msc_compl_l3(conn, msg, 0);
-
-	if (rc == MSC_CONN_ACCEPT) {
-		LOGP(DMSC, LOGL_INFO, "User has been accepted by MSC.\n");
-		return 0;
-	} else if (rc == MSC_CONN_REJECT)
-		LOGP(DMSC, LOGL_INFO, "User has been rejected by MSC.\n");
-	else
-		LOGP(DMSC, LOGL_INFO, "User has been rejected by MSC (unknown error)\n");
-
-	return -EINVAL;
+	msc_compl_l3(conn, msg, 0);
+	return 0;
 }
 
 /* Endpoint to handle BSSMAP classmark update */
diff --git a/src/libmsc/iucs.c b/src/libmsc/iucs.c
index 95bbbee..c3fea0d 100644
--- a/src/libmsc/iucs.c
+++ b/src/libmsc/iucs.c
@@ -142,7 +142,6 @@
 int gsm0408_rcvmsg_iucs(struct gsm_network *network, struct msgb *msg,
 			uint16_t *lac)
 {
-	int rc;
 	struct ranap_ue_conn_ctx *ue_ctx;
 	struct gsm_subscriber_connection *conn;
 
@@ -174,7 +173,6 @@
 		OSMO_ASSERT(pdisc != GSM48_PDISC_RR);
 
 		msc_dtap(conn, msg);
-		rc = 0;
 	} else {
 		/* allocate a new connection */
 
@@ -191,10 +189,10 @@
 			abort();
 
 		/* ownership of conn hereby goes to the MSC: */
-		rc = msc_compl_l3(conn, msg, 0);
+		msc_compl_l3(conn, msg, 0);
 	}
 
-	return rc;
+	return 0;
 }
 
 int iu_rab_act_cs(struct gsm_trans *trans)
diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c
index 88a3dbb..05ac845 100644
--- a/src/libmsc/osmo_msc.c
+++ b/src/libmsc/osmo_msc.c
@@ -87,37 +87,15 @@
 		gsm411_sapi_n_reject(conn);
 }
 
-/* receive a Level 3 Complete message and return MSC_CONN_ACCEPT or
- * MSC_CONN_REJECT */
-int msc_compl_l3(struct gsm_subscriber_connection *conn,
-		 struct msgb *msg, uint16_t chosen_channel)
+/* receive a Level 3 Complete message.
+ * Ownership of the conn is completely passed to the conn FSM, i.e. for both acceptance and rejection,
+ * the conn FSM shall decide when to release this conn. It may already be discarded before this exits. */
+void msc_compl_l3(struct gsm_subscriber_connection *conn,
+		  struct msgb *msg, uint16_t chosen_channel)
 {
 	msc_subscr_conn_get(conn, MSC_CONN_USE_COMPL_L3);
 	gsm0408_dispatch(conn, msg);
-
 	msc_subscr_conn_put(conn, MSC_CONN_USE_COMPL_L3);
-
-	/* Always return acceptance, because even if the conn was not accepted,
-	 * we assumed ownership of it and the caller shall not interfere with
-	 * that. We may even already have discarded the conn. */
-	return MSC_CONN_ACCEPT;
-
-#if 0
-	/*
-	 * If this is a silent call we want the channel to remain open as long as
-	 * possible and this is why we accept this connection regardless of any
-	 * pending transaction or ongoing operation.
-	 */
-	if (conn->silent_call)
-		return MSC_CONN_ACCEPT;
-	if (conn->loc_operation || conn->sec_operation || conn->anch_operation)
-		return MSC_CONN_ACCEPT;
-	if (trans_has_conn(conn))
-		return MSC_CONN_ACCEPT;
-
-	LOGP(DRR, LOGL_INFO, "MSC Complete L3: Rejecting connection.\n");
-	return MSC_CONN_REJECT;
-#endif
 }
 
 /* Receive a DTAP message from BSC */
