*** libxslt/functions.c 2001/05/22 14:59:48 1.24 --- libxslt/functions.c 2001/05/22 16:27:07 *************** *** 137,146 **** if (obj->stringval == NULL) { valuePush(ctxt, xmlXPathNewNodeSet(NULL)); } else { ! if (obj2 != NULL) { ! /* obj2 should be ordered in document order !!!!! */ ! base = xmlNodeGetBase(obj2->nodesetval->nodeTab[0]->doc, ! obj->nodesetval->nodeTab[0]); } else { xsltTransformContextPtr tctxt = ctxt->context->extra; if ((tctxt != NULL) && (tctxt->inst != NULL)) { --- 137,150 ---- if (obj->stringval == NULL) { valuePush(ctxt, xmlXPathNewNodeSet(NULL)); } else { ! if ((obj2 != NULL) && (obj2->nodesetval != NULL)) { ! xmlNodePtr target; ! ! target = obj2->nodesetval->nodeTab[0]; ! if (target->type == XML_ATTRIBUTE_NODE) { ! target = ((xmlAttrPtr) target)->parent; ! } ! base = xmlNodeGetBase(target->doc, target); } else { xsltTransformContextPtr tctxt = ctxt->context->extra; if ((tctxt != NULL) && (tctxt->inst != NULL)) {