diff --git a/src/agent_map.c b/src/agent_map.c
index 13db93391a8d332ed771bcc0512fb6986a93af5c..825a09dc427df8a3a03f4182216a3e37e75ea59c 100644
--- a/src/agent_map.c
+++ b/src/agent_map.c
@@ -3245,8 +3245,10 @@ int agent_process_channel_pref_tlv(void *agent, struct tlv_channel_pref *p,
 	memcpy(&radio->req_opclass, &opclass, sizeof(opclass));
 
 	/* Don't fail if all opclasses/channels with pref=0 */
-	if (!target_opclass || !target_channel)
+	if (!target_opclass || !target_channel) {
+		radio->report_oper_channel = true;
 		goto exit;
+	}
 
 	if (ret) {
 		memcpy(channel_resp[*channel_resp_nr].radio_id, radio_id, 6);