Index: trunk/src/draw_composite.c =================================================================== --- trunk/src/draw_composite.c (revision 8470) +++ trunk/src/draw_composite.c (revision 8471) @@ -156,5 +156,12 @@ { pcb_layer_group_t *g = pcb_get_layergrp(PCB, PCB->Data->Layer[id].grp); if (g == NULL) return 0; - return (g->len > 1); + + /* silk has special rules because the original format/model had 1 (auto+) + silk layer in the layer group */ + if (g->type & PCB_LYT_SILK) + return ((g->len != 1) || + ((PCB->Data->Layer[id].comb & (PCB_LYC_AUTO | PCB_LYC_SUB)) != PCB_LYC_AUTO)); + + return (g->len > 0); } Index: trunk/src/draw_ly_spec.c =================================================================== --- trunk/src/draw_ly_spec.c (revision 8470) +++ trunk/src/draw_ly_spec.c (revision 8471) @@ -130,7 +130,7 @@ cctx.poly_before = pcb_gui->poly_before; cctx.poly_after = pcb_gui->poly_after; - if ((cctx.grp == NULL) || (cctx.grp->len <= 1)) { /* fallback: no layers -> original code: draw auto+manual */ + if ((cctx.grp == NULL) || (cctx.grp->len <= 1) || ((PCB->Data->Layer[lid].comb & (PCB_LYC_AUTO | PCB_LYC_SUB)) == PCB_LYC_AUTO)) { /* fallback: no layers -> original code: draw auto+manual */ pcb_draw_layer(LAYER_PTR(lid), cctx.screen); pcb_draw_silk_auto(&cctx, &lyt_side); }