Index: obj_term.c =================================================================== --- obj_term.c (revision 10896) +++ obj_term.c (revision 10897) @@ -265,17 +265,22 @@ } \ } while(0) -pcb_any_obj_t *pcb_term_find_name(pcb_data_t *data, const char *subc_name, const char *term_name, pcb_bool same, pcb_subc_t **parent_out, pcb_layergrp_id_t *gid_out) +pcb_any_obj_t *pcb_term_find_name(pcb_board_t *pcb, pcb_data_t *data, pcb_layer_type_t lyt, const char *subc_name, const char *term_name, pcb_bool same, pcb_subc_t **parent_out, pcb_layergrp_id_t *gid_out) { pcb_subc_t *subc; pcb_layer_t *layer; int l; + if (lyt == 0) + return pcb_false; + if ((subc = pcb_subc_by_name(PCB->Data, subc_name)) == NULL) return NULL; layer = data->Layer; for (l = 0; l < data->LayerN; l++, layer++) { + if ((pcb_layer_flags_(pcb, layer) & lyt) == 0) + continue; PCB_LINE_LOOP(layer) { CHECK_TERM_LY(line); } PCB_END_LOOP;