diff --git a/CoreFoundation/URL.subproj/CFURLComponents.c b/CoreFoundation/URL.subproj/CFURLComponents.c
index 86dd9f1..ee1fa7d 100644
--- a/CoreFoundation/URL.subproj/CFURLComponents.c
+++ b/CoreFoundation/URL.subproj/CFURLComponents.c
@@ -63,7 +63,7 @@
 static Boolean __CFURLComponentsEqual(CFTypeRef left, CFTypeRef right);
 
 static CFStringRef __CFURLComponentsCopyDescription(CFTypeRef cf) {
-    return CFSTR("A really nice CFURLComponents object");
+    return CFRetain(CFSTR("A really nice CFURLComponents object"));
 }
 
 CF_SWIFT_EXPORT void __CFURLComponentsDeallocate(CFURLComponentsRef instance) {
@@ -1054,7 +1054,7 @@
                             }
                         }
                         else {
-                            nameString = CFSTR("");
+                            nameString = (CFStringRef)CFRetain(CFSTR(""));
                         }
                         nameRange.location = kCFNotFound;
                         valueRange.location = idx + 1;
@@ -1076,7 +1076,7 @@
                             }
                         }
                         else {
-                            valueString = CFSTR("");
+                            valueString = (CFStringRef)CFRetain(CFSTR(""));
                         }
                         CFStringRef name = CFSTR("name");
                         CFTypeRef keys[] = {name, CFSTR("value")};
@@ -1101,7 +1101,7 @@
                             }
                         }
                         else {
-                            nameString =  CFSTR("");
+                            nameString =  (CFStringRef)CFRetain(CFSTR(""));
                         }
                         CFStringRef name = CFSTR("name");
                         CFTypeRef keys[] = {name};
@@ -1131,7 +1131,7 @@
                     }
                 }
                 else {
-                    valueString = CFSTR("");
+                    valueString = (CFStringRef)CFRetain(CFSTR(""));
                 }
                 CFStringRef name = CFSTR("name");
                 CFTypeRef keys[] = {name, CFSTR("value")};
@@ -1155,7 +1155,7 @@
                     }
                 }
                 else {
-                    nameString =  CFSTR("");
+                    nameString =  (CFStringRef)CFRetain(CFSTR(""));
                 }
                 CFStringRef name = CFSTR("name");
                 CFTypeRef keys[] = {name};
diff --git a/TestFoundation/TestURL.swift b/TestFoundation/TestURL.swift
index e500dd1..f0c809d 100644
--- a/TestFoundation/TestURL.swift
+++ b/TestFoundation/TestURL.swift
@@ -525,6 +525,7 @@
 class TestURLComponents : XCTestCase {
     static var allTests: [(String, (TestURLComponents) -> () throws -> Void)] {
         return [
+            ("test_queryItems", test_queryItems),
             ("test_string", test_string),
             ("test_port", test_portSetter),
             ("test_url", test_url),
@@ -535,6 +536,19 @@
         ]
     }
     
+    func test_queryItems() {
+        let urlString = "http://localhost:8080/foo?bar=&bar=baz"
+        let url = URL(string: urlString)!
+
+        let components = URLComponents(url: url, resolvingAgainstBaseURL: false)
+
+        var query = [String: String]()
+        components?.queryItems?.forEach {
+            query[$0.name] = $0.value ?? ""
+        }
+        XCTAssertEqual(["bar": "baz"], query)
+    }
+
     func test_string() {
         for obj in getTestData()! {
             let testDict = obj as! [String: Any]
