Index: trunk/src/find_lookup.c =================================================================== --- trunk/src/find_lookup.c (revision 6798) +++ trunk/src/find_lookup.c (revision 6799) @@ -520,8 +520,8 @@ /* try all new pads */ /* handle the special pad layers */ flg = pcb_layergrp_flags(group); - if (flg & PCB_LYT_BOTTOM) layer = PCB_SOLDER_SIDE; - else if (flg & PCB_LYT_TOP) layer = PCB_COMPONENT_SIDE; + if ((flg & PCB_LYT_BOTTOM) && (flg & PCB_LYT_COPPER)) layer = PCB_SOLDER_SIDE; + else if ((flg & PCB_LYT_TOP) && (flg & PCB_LYT_COPPER)) layer = PCB_COMPONENT_SIDE; else continue; /* skip pads for this group */ position = &padposition[layer]; @@ -927,8 +927,8 @@ /* handle the special pad layers */ flg = pcb_layergrp_flags(LayerGroup); - if (flg & PCB_LYT_BOTTOM) info.layer = PCB_SOLDER_SIDE; - else if (flg & PCB_LYT_TOP) info.layer = PCB_COMPONENT_SIDE; + if ((flg & PCB_LYT_BOTTOM) && (flg & PCB_LYT_COPPER)) info.layer = PCB_SOLDER_SIDE; + else if ((flg & PCB_LYT_TOP) && (flg & PCB_LYT_COPPER)) info.layer = PCB_COMPONENT_SIDE; else return pcb_false; if (setjmp(info.env) == 0) @@ -1050,8 +1050,8 @@ /* handle the special pad layers */ flg = pcb_layergrp_flags(LayerGroup); - if (flg & PCB_LYT_BOTTOM) info.layer = PCB_SOLDER_SIDE; - else if (flg & PCB_LYT_TOP) info.layer = PCB_COMPONENT_SIDE; + if ((flg & PCB_LYT_BOTTOM) && (flg & PCB_LYT_COPPER)) info.layer = PCB_SOLDER_SIDE; + else if ((flg & PCB_LYT_TOP) && (flg & PCB_LYT_COPPER)) info.layer = PCB_COMPONENT_SIDE; else return pcb_false; if (setjmp(info.env) == 0) @@ -1144,8 +1144,8 @@ /* handle the special pad layers */ flg = pcb_layergrp_flags(LayerGroup); - if (flg & PCB_LYT_BOTTOM) info.layer = PCB_SOLDER_SIDE; - else if (flg & PCB_LYT_TOP) info.layer = PCB_COMPONENT_SIDE; + if ((flg & PCB_LYT_BOTTOM) && (flg & PCB_LYT_COPPER)) info.layer = PCB_SOLDER_SIDE; + else if ((flg & PCB_LYT_TOP) && (flg & PCB_LYT_COPPER)) info.layer = PCB_COMPONENT_SIDE; else return pcb_false; if (setjmp(info.env) == 0) @@ -1323,8 +1323,8 @@ /* handle the special pad layers */ flg = pcb_layergrp_flags(LayerGroup); - if (flg & PCB_LYT_BOTTOM) info.layer = PCB_SOLDER_SIDE; - else if (flg & PCB_LYT_TOP) info.layer = PCB_COMPONENT_SIDE; + if ((flg & PCB_LYT_BOTTOM) && (flg & PCB_LYT_COPPER)) info.layer = PCB_SOLDER_SIDE; + else if ((flg & PCB_LYT_TOP) && (flg & PCB_LYT_COPPER)) info.layer = PCB_COMPONENT_SIDE; else return retv; if (setjmp(info.env) == 0) @@ -1444,8 +1444,8 @@ /* handle the special pad layers */ flg = pcb_layergrp_flags(LayerGroup); - if (flg & PCB_LYT_BOTTOM) info.layer = PCB_SOLDER_SIDE; - else if (flg & PCB_LYT_TOP) info.layer = PCB_COMPONENT_SIDE; + if ((flg & PCB_LYT_BOTTOM) && (flg & PCB_LYT_COPPER)) info.layer = PCB_SOLDER_SIDE; + else if ((flg & PCB_LYT_TOP) && (flg & PCB_LYT_COPPER)) info.layer = PCB_COMPONENT_SIDE; else return pcb_false; if (setjmp(info.env) == 0)