diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 53cafa4..bd7cfe0 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -418,6 +418,7 @@
 				&old_lai, &msc_a->via_cell.lai,
 				is_utran || net->authentication_required,
 				msc_a_is_ciphering_to_be_attempted(msc_a),
+				msc_a_is_ciphering_required(msc_a),
 				lu->key_seq,
 				osmo_gsm48_classmark1_is_r99(&lu->classmark1),
 				is_utran,
@@ -819,6 +820,7 @@
 			 &mi, &msc_a->via_cell.lai,
 			 is_utran || net->authentication_required,
 			 msc_a_is_ciphering_to_be_attempted(msc_a),
+			 msc_a_is_ciphering_required(msc_a),
 			 req->cipher_key_seq,
 			 osmo_gsm48_classmark2_is_r99(cm2, cm2_len),
 			 is_utran);
@@ -945,6 +947,7 @@
 			 &mi, &msc_a->via_cell.lai,
 			 is_utran || net->authentication_required,
 			 msc_a_is_ciphering_to_be_attempted(msc_a),
+			 msc_a_is_ciphering_required(msc_a),
 			 req->cipher_key_seq,
 			 osmo_gsm48_classmark2_is_r99(cm2, cm2_len),
 			 is_utran);
@@ -1307,6 +1310,7 @@
 			 VLR_PR_ARQ_T_PAGING_RESP, 0, &mi, &msc_a->via_cell.lai,
 			 is_utran || net->authentication_required,
 			 msc_a_is_ciphering_to_be_attempted(msc_a),
+			 msc_a_is_ciphering_required(msc_a),
 			 pr->key_seq,
 			 osmo_gsm48_classmark2_is_r99(cm2, classmark2_len),
 			 is_utran);
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 5d44686..d7e97cd 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -116,6 +116,18 @@
 		return net->a5_encryption_mask > 0x1;
 }
 
+bool msc_a_is_ciphering_required(const struct msc_a *msc_a)
+{
+	struct gsm_network *net = msc_a_net(msc_a);
+	bool is_utran = (msc_a->c.ran->type == OSMO_RAT_UTRAN_IU);
+	if (is_utran)
+		return net->uea_encryption_mask
+			&& ((net->uea_encryption_mask & (1 << OSMO_UTRAN_UEA0)) == 0);
+	else
+		return net->a5_encryption_mask
+			&& ((net->a5_encryption_mask & 0x1) == 0);
+}
+
 static void update_counters(struct osmo_fsm_inst *fi, bool conn_accepted)
 {
 	struct msc_a *msc_a = fi->priv;
diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c
index ce7c2af..af7ec74 100644
--- a/src/libvlr/vlr_access_req_fsm.c
+++ b/src/libvlr/vlr_access_req_fsm.c
@@ -67,7 +67,12 @@
 	uint32_t tmsi;
 	struct osmo_location_area_id lai;
 	bool authentication_required;
+	/* is_ciphering_to_be_attempted: true when any A5/n > 0 are enabled. Ciphering is allowed, always attempt to get Auth Info from
+	 * the HLR. */
 	bool is_ciphering_to_be_attempted;
+	/* is_ciphering_required: true when A5/0 is disabled. If we cannot get Auth Info from the HLR, reject the
+	 * subscriber. */
+	bool is_ciphering_required;
 	uint8_t key_seq;
 	bool is_r99;
 	bool is_utran;
@@ -635,12 +640,16 @@
 		 const struct osmo_location_area_id *lai,
 		 bool authentication_required,
 		 bool is_ciphering_to_be_attempted,
+		 bool is_ciphering_required,
 		 uint8_t key_seq,
 		 bool is_r99, bool is_utran)
 {
 	struct osmo_fsm_inst *fi;
 	struct proc_arq_priv *par;
 
+	if (is_ciphering_required)
+		OSMO_ASSERT(is_ciphering_to_be_attempted);
+
 	fi = osmo_fsm_inst_alloc_child(&proc_arq_vlr_fsm, parent,
 				       parent_event_failure);
 	if (!fi)
@@ -658,6 +667,7 @@
 	par->parent_event_data = parent_event_data;
 	par->authentication_required = authentication_required;
 	par->is_ciphering_to_be_attempted = is_ciphering_to_be_attempted;
+	par->is_ciphering_required = is_ciphering_required;
 	par->key_seq = key_seq;
 	par->is_r99 = is_r99;
 	par->is_utran = is_utran;
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index e8ceefd..22875cf 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -676,7 +676,12 @@
 	struct osmo_location_area_id old_lai;
 	struct osmo_location_area_id new_lai;
 	bool authentication_required;
+	/* is_ciphering_to_be_attempted: true when any A5/n > 0 are enabled. Ciphering is allowed, always attempt to get Auth Info from
+	 * the HLR. */
 	bool is_ciphering_to_be_attempted;
+	/* is_ciphering_required: true when A5/0 is disabled. If we cannot get Auth Info from the HLR, reject the
+	 * subscriber. */
+	bool is_ciphering_required;
 	uint8_t key_seq;
 	bool is_r99;
 	bool is_utran;
@@ -1476,6 +1481,7 @@
 	       const struct osmo_location_area_id *new_lai,
 	       bool authentication_required,
 	       bool is_ciphering_to_be_attempted,
+	       bool is_ciphering_required,
 	       uint8_t key_seq,
 	       bool is_r99, bool is_utran,
 	       bool assign_tmsi)
@@ -1483,6 +1489,9 @@
 	struct osmo_fsm_inst *fi;
 	struct lu_fsm_priv *lfp;
 
+	if (is_ciphering_required)
+		OSMO_ASSERT(is_ciphering_to_be_attempted);
+
 	fi = osmo_fsm_inst_alloc_child(&vlr_lu_fsm, parent, parent_event_failure);
 	if (!fi)
 		return NULL;
@@ -1500,6 +1509,7 @@
 	lfp->parent_event_data = parent_event_data;
 	lfp->authentication_required = authentication_required;
 	lfp->is_ciphering_to_be_attempted = is_ciphering_to_be_attempted;
+	lfp->is_ciphering_required = is_ciphering_required;
 	lfp->key_seq = key_seq;
 	lfp->is_r99 = is_r99;
 	lfp->is_utran = is_utran;
