diff --git a/src/xpath/lib b/src/xpath/lib
index a567fbf..3dff86f 160000
--- a/src/xpath/lib
+++ b/src/xpath/lib
@@ -1 +1 @@
-Subproject commit a567fbf1d84071821de455ec442453790a90ea33
+Subproject commit 3dff86fa9190498f07ffed8c075b8ee5b7f4c29e
diff --git a/tests/xslt/call-template.test.ts b/tests/xslt/call-template.test.ts
new file mode 100644
index 0000000..17f094f
--- /dev/null
+++ b/tests/xslt/call-template.test.ts
@@ -0,0 +1,49 @@
+import { Xslt, XmlParser } from '../../src/index';
+
+describe('xsl:call-template', () => {
+ let xslt: Xslt;
+ let xmlParser: XmlParser;
+
+ beforeEach(() => {
+ xslt = new Xslt();
+ xmlParser = new XmlParser();
+ });
+
+ // https://github.com/DesignLiquido/xslt-processor/issues/217
+ it('supports recursion, using a variable to hold the result of a nested call-template', async () => {
+ const xml = xmlParser.xmlParse('');
+ const stylesheet = xmlParser.xmlParse(`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`);
+ const result = await xslt.xsltProcess(xml, stylesheet);
+ expect(result).toBe('');
+ });
+});