"Someone should definitely find out why this is happening before we commit all these changes. This is obviously pointing to something that's not happy."
OK, without going in too deep, I have managed to get an optimised IRIX Xerces-C library which appears to work fine with relative paths. The fix is appears fairly stupid - even to me, but hey, it works!! ; ) The change required is in $XERCESCROOT/src/internal/XMLScanner.cpp ... void XMLScanner::scanDocument( const XMLCh* const systemId , const bool reuseValidator) { // // First we try to parse it as a URL. If that fails, we assume its // a file and try it that way. // #if defined(IRIX) XMLString::transcode(systemId); #endif . . . } assuming that this problem only affects IRIX. I'm not too sure why or how this fixes the problem, but without the new line (or possibly another similar line??) the optimisation under IRIX somehow screws up the XMLCh* systemId, and hence the file cannot be parsed. Pretty sure this isn't the best fix and probably not even an appropriate fix, but it seems to work. David.