Index: src/hid_cam.c =================================================================== --- src/hid_cam.c (revision 27821) +++ src/hid_cam.c (revision 27822) @@ -480,6 +480,10 @@ parse_layer_supplements(spk, spv, spc, &purpose, &xf, &xf_); vl = pcb_vlayer_get_first(lyt, purpose, -1); + if ((lyt & PCB_LYT_VIRTUAL) && (vl == NULL)) { + pcb_message(PCB_MSG_ERROR, "CAM rule: no virtual layer with purpose '%s'\n", purpose); + goto err; + } if (vl == NULL) { pcb_layergrp_id_t gids[PCB_MAX_LAYERGRP]; int n, len = pcb_layergrp_listp(dst->pcb, lyt, gids, sizeof(gids)/sizeof(gids[0]), -1, purpose);