Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 22512) +++ trunk/src/obj_arc.c (revision 22513) @@ -59,9 +59,13 @@ void pcb_arc_reg(pcb_layer_t *layer, pcb_arc_t *arc) { arclist_append(&layer->Arc, arc); + PCB_SET_PARENT(arc, layer, layer); + + if (layer->parent_type == PCB_PARENT_UI) + return; + assert(layer->parent_type == PCB_PARENT_DATA); pcb_obj_id_reg(layer->parent.data, arc); - PCB_SET_PARENT(arc, layer, layer); } void pcb_arc_unreg(pcb_arc_t *arc) Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 22512) +++ trunk/src/obj_line.c (revision 22513) @@ -64,9 +64,13 @@ void pcb_line_reg(pcb_layer_t *layer, pcb_line_t *line) { linelist_append(&layer->Line, line); + PCB_SET_PARENT(line, layer, layer); + + if (layer->parent_type == PCB_PARENT_UI) + return; + assert(layer->parent_type == PCB_PARENT_DATA); pcb_obj_id_reg(layer->parent.data, line); - PCB_SET_PARENT(line, layer, layer); } void pcb_line_unreg(pcb_line_t *line) Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 22512) +++ trunk/src/obj_poly.c (revision 22513) @@ -62,9 +62,13 @@ void pcb_poly_reg(pcb_layer_t *layer, pcb_poly_t *poly) { polylist_append(&layer->Polygon, poly); + PCB_SET_PARENT(poly, layer, layer); + + if (layer->parent_type == PCB_PARENT_UI) + return; + assert(layer->parent_type == PCB_PARENT_DATA); pcb_obj_id_reg(layer->parent.data, poly); - PCB_SET_PARENT(poly, layer, layer); } void pcb_poly_unreg(pcb_poly_t *poly) Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 22512) +++ trunk/src/obj_text.c (revision 22513) @@ -63,9 +63,13 @@ void pcb_text_reg(pcb_layer_t *layer, pcb_text_t *text) { textlist_append(&layer->Text, text); + PCB_SET_PARENT(text, layer, layer); + + if (layer->parent_type == PCB_PARENT_UI) + return; + assert(layer->parent_type == PCB_PARENT_DATA); pcb_obj_id_reg(layer->parent.data, text); - PCB_SET_PARENT(text, layer, layer); } void pcb_text_unreg(pcb_text_t *text)