I need to make some thread-specific data available to my xslt function callbacks. I think I've sort of reverse-engineered a way to do it, by creating my own parser class, stuffing the data I need into an instance of that class, using the parser instance to parse the XSL/T filter, and then in the extension function following the context argument's context_node to its root tree, which in turn gets me back to my own parser object (and my thread-specific data). Is there a more elegant way to do it that I just haven't yet stumbled across in reading through the API docs?