diff --git a/backend/escl/escl_capabilities.c b/backend/escl/escl_capabilities.c index d57b436fd..efbd54707 100644 --- a/backend/escl/escl_capabilities.c +++ b/backend/escl/escl_capabilities.c @@ -430,8 +430,9 @@ print_xml_c(xmlNode *node, ESCL_Device *device, capabilities_t *scanner, int typ if (find_nodes_c(node) && type != -1) find_true_variables(node, scanner, type); } - if (!strcmp((const char *)node->name, "Version")){ - device->version = atof ((const char *)xmlNodeGetContent(node)); + if (!strcmp((const char *)node->name, "Version")&& node->ns && node->ns->prefix){ + if (!strcmp((const char*)node->ns->prefix, "pwg")) + device->version = atof ((const char *)xmlNodeGetContent(node)); } if (!strcmp((const char *)node->name, "MakeAndModel")){ device->model_name = strdup((const char *)xmlNodeGetContent(node)); @@ -587,6 +588,7 @@ escl_capabilities(ESCL_Device *device, char *blacklist, SANE_Status *status) strstr(header->memory, "Server: HP_Compact_Server")) device->hack = curl_slist_append(NULL, "Host: localhost"); + device->version = 0.0; scanner->source = 0; scanner->Sources = (SANE_String_Const *)malloc(sizeof(SANE_String_Const) * 4); for (i = 0; i < 4; i++)