diff --git a/pcbnew/plugins/kicad/pcb_parser.cpp b/pcbnew/plugins/kicad/pcb_parser.cpp index 4e074c0aba..9d3a70971c 100644 --- a/pcbnew/plugins/kicad/pcb_parser.cpp +++ b/pcbnew/plugins/kicad/pcb_parser.cpp @@ -5475,7 +5475,11 @@ PCB_VIA* PCB_PARSER::parsePCB_VIA() break; case T_zone_layer_connections: - for( PCB_LAYER_ID layer : via->GetLayerSet().Seq() ) + { + // Ensure only copper layers are stored int ZoneLayerOverride array + LSET cuLayers = via->GetLayerSet() & LSET::AllCuMask(); + + for( PCB_LAYER_ID layer : cuLayers.Seq() ) via->SetZoneLayerOverride( layer, ZLO_FORCE_NO_ZONE_CONNECTION ); for( token = NextTok(); token != T_RIGHT; token = NextTok() ) @@ -5487,7 +5491,7 @@ PCB_VIA* PCB_PARSER::parsePCB_VIA() via->SetZoneLayerOverride( layer, ZLO_FORCE_FLASHED ); } - + } break; case T_tstamp: