Index: trunk/src/operation.c =================================================================== --- trunk/src/operation.c (revision 16304) +++ trunk/src/operation.c (revision 16305) @@ -168,7 +168,7 @@ PCB_ENDALL_LOOP; } - if (type & PCB_OBJ_SUBC && F->subc) { + if ((type & (PCB_OBJ_SUBC | PCB_OBJ_SUBC_PART)) && F->subc) { PCB_SUBC_LOOP(data); { if (PCB_FLAG_TEST(PCB_FLAG_SELECTED, subc)) { @@ -179,7 +179,7 @@ F->subc(ctx, subc); changed = pcb_true; } - else if (pcb->loose_subc) { + else if ((pcb->loose_subc) || (type & PCB_OBJ_SUBC_PART)) { if (pcb_selected_operation(pcb, subc->data, F, ctx, Reset, type)) changed = pcb_true; } @@ -187,14 +187,6 @@ PCB_END_LOOP; } - if (type & PCB_OBJ_SUBC_PART) { - PCB_SUBC_LOOP(data); - { - changed |= pcb_selected_operation(pcb, subc->data, F, ctx, Reset, type); - } - PCB_END_LOOP; - } - /* process padstacks */ if (type & PCB_OBJ_PSTK && pcb->pstk_on && F->padstack) { PCB_PADSTACK_LOOP(data);