diff --git a/pcbnew/footprint_libraries_utils.cpp b/pcbnew/footprint_libraries_utils.cpp index 1c968fc8df..04c4459538 100644 --- a/pcbnew/footprint_libraries_utils.cpp +++ b/pcbnew/footprint_libraries_utils.cpp @@ -763,6 +763,9 @@ void PCB_EDIT_FRAME::ExportFootprintsToLibrary( bool aStoreInNewLib, const wxStr resetReference( fpCopy ); pi->FootprintSave( libPath, fpCopy ); + // Remove reference to the group before deleting + fpCopy->SetParentGroup( nullptr ); + delete fpCopy; } } diff --git a/pcbnew/plugins/kicad/pcb_plugin.cpp b/pcbnew/plugins/kicad/pcb_plugin.cpp index 004a0e76f3..6755b62f8f 100644 --- a/pcbnew/plugins/kicad/pcb_plugin.cpp +++ b/pcbnew/plugins/kicad/pcb_plugin.cpp @@ -2675,8 +2675,9 @@ void PCB_PLUGIN::FootprintSave( const wxString& aLibraryPath, const FOOTPRINT* a footprint->Flip( footprint->GetPosition(), false ); } - // Detach it from the board + // Detach it from the board and its group footprint->SetParent( nullptr ); + footprint->SetParentGroup( nullptr ); wxLogTrace( traceKicadPcbPlugin, wxT( "Creating s-expr footprint file '%s'." ), fullPath ); footprints.insert( footprintName,