Index: trunk/src/obj_poly.h =================================================================== --- trunk/src/obj_poly.h (revision 12166) +++ trunk/src/obj_poly.h (revision 12167) @@ -174,9 +174,11 @@ #define pcb_poly_ppclear(poly) \ do { \ pcb_layer_t *layer = poly->parent.layer; \ - if (layer->is_bound) layer = layer->meta.bound.real; \ - if (PCB_POLY_HAS_CLEARANCE(poly) && (layer != NULL)) \ - pcb_poly_clear_from_poly(layer->parent, PCB_TYPE_POLYGON, layer, poly); \ + if (layer != NULL) { \ + if (layer->is_bound) layer = layer->meta.bound.real; \ + if (PCB_POLY_HAS_CLEARANCE(poly) && (layer != NULL)) \ + pcb_poly_clear_from_poly(layer->parent, PCB_TYPE_POLYGON, layer, poly); \ + } \ } while(0) /* Let the poly restore sorrunding polys in its layer */ @@ -183,9 +185,11 @@ #define pcb_poly_pprestore(poly) \ do { \ pcb_layer_t *layer = poly->parent.layer; \ - if (layer->is_bound) layer = layer->meta.bound.real; \ - if (PCB_POLY_HAS_CLEARANCE(poly) && (layer != NULL)) \ - pcb_poly_restore_to_poly(layer->parent, PCB_TYPE_POLYGON, layer, poly); \ + if (layer != NULL) { \ + if (layer->is_bound) layer = layer->meta.bound.real; \ + if (PCB_POLY_HAS_CLEARANCE(poly) && (layer != NULL)) \ + pcb_poly_restore_to_poly(layer->parent, PCB_TYPE_POLYGON, layer, poly); \ + } \ } while(0)