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:">