diff -ruN orig/dia2code-0.8.3/dia2code/parse_diagram.c dia2code-0.8.3/dia2code/parse_diagram.c
--- orig/dia2code-0.8.3/dia2code/parse_diagram.c 2003-03-05 17:44:38.000000000 +0100
+++ dia2code-0.8.3/dia2code/parse_diagram.c 2010-04-24 16:18:25.000000000 +0200
@@ -384,6 +384,10 @@
attribute = package->xmlChildrenNode;
while ( attribute != NULL ) {
attrname = xmlGetProp(attribute, "name");
+ if( attrname == NULL ) {
+ attribute = attribute->next;
+ continue;
+ }
if ( ! strcmp("name", attrname) ) {
parse_dia_string(attribute->xmlChildrenNode, myself->name);
} else if ( ! strcmp ( "obj_pos", attrname ) ) {
@@ -418,6 +422,10 @@
attribute = class->xmlChildrenNode;
while ( attribute != NULL ) {
attrname = xmlGetProp(attribute, "name");
+ if( attrname == NULL ) {
+ attribute = attribute->next;
+ continue;
+ }
if ( ! strcmp("name", attrname) ) {
parse_dia_string(attribute->xmlChildrenNode, myself->name);
} else if ( ! strcmp ( "obj_pos", attrname ) ) {
@@ -478,7 +486,7 @@
id = xmlGetProp(attribute->xmlChildrenNode, "to");
} else {
attrname = xmlGetProp(attribute, "name");
- if ( ! strcmp("text", attrname) && attribute->xmlChildrenNode != NULL &&
+ if ( attrname != NULL && ! strcmp("text", attrname) && attribute->xmlChildrenNode != NULL &&
attribute->xmlChildrenNode->xmlChildrenNode != NULL ){
name = attribute->xmlChildrenNode->xmlChildrenNode->content;
} else {