Merge pull request #1409 from mattrajca/master
diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c
index 5be8bff..0bac2ae 100644
--- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c
+++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c
@@ -885,8 +885,7 @@
xmlXPathObjectPtr evalResult = xmlXPathNodeEval(node, xpath, context);
xmlNodeSetPtr nodes = evalResult->nodesetval;
-
- int count = nodes->nodeNr;
+ int count = nodes ? nodes->nodeNr : 0;
CFMutableArrayRef results = CFArrayCreateMutable(NULL, count, NULL);
for (int i = 0; i < count; i++) {
diff --git a/TestFoundation/TestXMLDocument.swift b/TestFoundation/TestXMLDocument.swift
index 36b6eea..b4d2a83 100644
--- a/TestFoundation/TestXMLDocument.swift
+++ b/TestFoundation/TestXMLDocument.swift
@@ -158,7 +158,10 @@
XCTAssertEqual(nodes[0], bar1)
XCTAssertEqual(nodes[1], bar2)
XCTAssertEqual(nodes[2], bar3)
-
+
+ let emptyResults = try! doc.nodes(forXPath: "/items/item/name[@type='alternate']/@value")
+ XCTAssertEqual(emptyResults.count, 0)
+
let xmlString = """
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<D:propfind xmlns:D="DAV:">