diff --git a/pcbnew/router/pns_node.cpp b/pcbnew/router/pns_node.cpp index 6a8e62549b..0544b9ba58 100644 --- a/pcbnew/router/pns_node.cpp +++ b/pcbnew/router/pns_node.cpp @@ -840,8 +840,15 @@ void NODE::Remove( ITEM* aItem ) break; case ITEM::SOLID_T: + { + SOLID* solid = static_cast( aItem ); + + if( solid->HasHole() ) + Remove( solid->Hole() ); + Remove( static_cast( aItem ) ); break; + } case ITEM::SEGMENT_T: Remove( static_cast( aItem ) ); @@ -858,8 +865,15 @@ void NODE::Remove( ITEM* aItem ) } case ITEM::VIA_T: + { + VIA* via = static_cast( aItem ); + + if( via->HasHole() ) + Remove( via->Hole() ); + Remove( static_cast( aItem ) ); break; + } default: break;