Index: trunk/src_plugins/propedit/propedit.c =================================================================== --- trunk/src_plugins/propedit/propedit.c (revision 26197) +++ trunk/src_plugins/propedit/propedit.c (revision 26198) @@ -123,7 +123,17 @@ return 0; } +/* pair of prop_scope_add() - uninits the scope */ +static void prop_scope_finish(pcb_propedit_t *pe) +{ + pcb_idpath_t *idp; + /* need to remove idpaths from the scope list, else it won't be possible + to add them again */ + while((idp = pcb_idpath_list_first(&pe->objs)) != NULL) + pcb_idpath_list_remove(idp); +} + extern pcb_layergrp_id_t pcb_actd_EditGroup_gid; static const char pcb_acts_propset[] = "propset([scope], name, value)"; @@ -147,6 +157,8 @@ } PCB_ACT_IRES(pcb_propsel_set_str(&ctx, name, val)); + + prop_scope_finish(&ctx); pcb_props_uninit(&ctx); return 0; } @@ -203,6 +215,7 @@ } free(sorted); + prop_scope_finish(&ctx); pcb_props_uninit(&ctx); PCB_ACT_IRES(0); return 0; Index: trunk/src_plugins/propedit/propsel.c =================================================================== --- trunk/src_plugins/propedit/propsel.c (revision 26197) +++ trunk/src_plugins/propedit/propsel.c (revision 26198) @@ -529,7 +529,7 @@ if (st->c_valid && (strcmp(pn, "smirror") == 0) && (pcb_pstk_change_instance(ps, NULL, NULL, NULL, NULL, &i) == 0)) DONE; if (st->c_valid && (strcmp(pn, "proto") == 0) && - (pcb_pstk_change_instance(ps, &ca, NULL, NULL, NULL, NULL) == 0)) DONE; + (pcb_pstk_change_instance(ps, &st->c, NULL, NULL, NULL, NULL) == 0)) DONE; if (st->c_valid && (strcmp(pn, "hole") == 0) && (pcb_pstk_proto_change_hole(proto, NULL, &st->c, NULL, NULL) == 0)) DONE; if (st->c_valid && (strcmp(pn, "plated") == 0) &&