Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 29741) +++ trunk/src/data.c (revision 29742) @@ -399,6 +399,7 @@ void pcb_data_mirror(pcb_data_t *data, pcb_coord_t y_offs, pcb_data_mirror_text_t mtxt, pcb_bool pstk_smirror, pcb_bool undoable) { pcb_undo_freeze_serial(); + pcb_data_clip_inhibit_inc(data); PCB_PADSTACK_LOOP(data); { pcb_pstk_mirror(padstack, y_offs, pstk_smirror, 0, undoable); @@ -443,6 +444,7 @@ PCB_ENDALL_LOOP; break; } + pcb_data_clip_inhibit_dec(data, 0); pcb_undo_unfreeze_serial(); pcb_undo_inc_serial(); } Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 29741) +++ trunk/src/obj_arc.c (revision 29742) @@ -396,6 +396,7 @@ if (layer->arc_tree != NULL) pcb_r_delete_entry(layer->arc_tree, (pcb_box_t *)g->arc); + pcb_poly_restore_to_poly(layer->parent.data, PCB_OBJ_ARC, layer, g->arc); rnd_swap(pcb_coord_t, g->Thickness, g->arc->Thickness); rnd_swap(pcb_coord_t, g->Clearance, g->arc->Clearance); @@ -409,6 +410,7 @@ pcb_arc_bbox(g->arc); if (layer->arc_tree != NULL) pcb_r_insert_entry(layer->arc_tree, (pcb_box_t *)g->arc); + pcb_poly_clear_from_poly(layer->parent.data, PCB_OBJ_ARC, layer, g->arc); return 0; } Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 29741) +++ trunk/src/obj_line.c (revision 29742) @@ -133,6 +133,7 @@ if (layer->line_tree != NULL) pcb_r_delete_entry(layer->line_tree, (pcb_box_t *)g->line); + pcb_poly_restore_to_poly(layer->parent.data, PCB_OBJ_LINE, layer, g->line); rnd_swap(pcb_point_t, g->Point1, g->line->Point1); rnd_swap(pcb_point_t, g->Point2, g->line->Point2); @@ -142,6 +143,7 @@ pcb_line_bbox(g->line); if (layer->line_tree != NULL) pcb_r_insert_entry(layer->line_tree, (pcb_box_t *)g->line); + pcb_poly_clear_from_poly(layer->parent.data, PCB_OBJ_LINE, layer, g->line); return 0; } Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 29741) +++ trunk/src/obj_text.c (revision 29742) @@ -133,6 +133,7 @@ if (layer->text_tree != NULL) pcb_r_delete_entry(layer->text_tree, (pcb_box_t *)g->text); + pcb_poly_restore_to_poly(layer->parent.data, PCB_OBJ_TEXT, layer, g->text); rnd_swap(int, g->Scale, g->text->Scale); rnd_swap(pcb_coord_t, g->X, g->text->X); @@ -144,6 +145,7 @@ pcb_text_bbox(pcb_font(pcb, g->text->fid, 1), g->text); if (layer->text_tree != NULL) pcb_r_insert_entry(layer->text_tree, (pcb_box_t *)g->text); + pcb_poly_clear_from_poly(layer->parent.data, PCB_OBJ_TEXT, layer, g->text); return 0; }