Index: trunk/src/obj_common.c =================================================================== --- trunk/src/obj_common.c (revision 10904) +++ trunk/src/obj_common.c (revision 10905) @@ -151,8 +151,13 @@ void pcb_obj_attrib_post_change(pcb_attribute_list_t *list, const char *name, const char *value) { pcb_any_obj_t *obj = (pcb_any_obj_t *)(((char *)list) - offsetof(pcb_any_obj_t, Attributes)); - if (strcmp(name, "term") == 0) + if (strcmp(name, "term") == 0) { + const char *inv; obj->term = value; + inv = pcb_obj_id_invalid(obj->term); + if (inv != NULL) + pcb_message(PCB_MSG_ERROR, "Invalid character '%c' in subc refdes '%s'\n", *inv, obj->term); + } } const char *pcb_obj_id_invalid(const char *id) Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 10904) +++ trunk/src/obj_subc.c (revision 10905) @@ -49,8 +49,13 @@ static void pcb_subc_attrib_post_change(pcb_attribute_list_t *list, const char *name, const char *value) { pcb_subc_t *sc = (pcb_subc_t *)(((char *)list) - offsetof(pcb_subc_t, Attributes)); - if (strcmp(name, "refdes") == 0) + if (strcmp(name, "refdes") == 0) { + const char *inv; sc->refdes = value; + inv = pcb_obj_id_invalid(sc->refdes); + if (inv != NULL) + pcb_message(PCB_MSG_ERROR, "Invalid character '%c' in subc refdes '%s'\n", *inv, sc->refdes); + } } pcb_subc_t *pcb_subc_alloc(void)