Index: undo_old.c =================================================================== --- undo_old.c (revision 10983) +++ undo_old.c (revision 10984) @@ -138,12 +138,8 @@ */ static void DrawRecoveredObject(int Type, void *Ptr1, void *Ptr2, void *Ptr3) { - if (Type & (PCB_TYPE_LINE | PCB_TYPE_TEXT | PCB_TYPE_POLYGON | PCB_TYPE_ARC)) { - pcb_layer_t *layer; - - layer = LAYER_PTR(pcb_layer_id(RemoveList, (pcb_layer_t *) Ptr1)); + if (Type & (PCB_TYPE_LINE | PCB_TYPE_TEXT | PCB_TYPE_POLYGON | PCB_TYPE_ARC)) pcb_draw_obj((pcb_any_obj_t *)Ptr2); - } else pcb_draw_obj((pcb_any_obj_t *)Ptr2); } @@ -547,9 +543,9 @@ /* lookup entry by it's ID */ type = pcb_search_obj_by_id(RemoveList, &ptr1, &ptr2, &ptr3, Entry->ID, Entry->Kind); if (type != PCB_TYPE_NONE) { + pcb_move_obj_to_buffer(PCB, PCB->Data, RemoveList, type, ptr1, ptr2, ptr3); if (pcb_undo_and_draw) DrawRecoveredObject(type, ptr1, ptr2, ptr3); - pcb_move_obj_to_buffer(PCB, PCB->Data, RemoveList, type, ptr1, ptr2, ptr3); Entry->Type = PCB_UNDO_CREATE; return (pcb_true); }