diff --git a/configs/core.py b/configs/core.py
index 1f751a1..f85e2fa 100644
--- a/configs/core.py
+++ b/configs/core.py
@@ -35,7 +35,7 @@
       if ival == False: ival = None
       if value == False: value = None
       if value == True and ival:
-        return True  # any nonempty value is true, so match it
+        continue  # any nonempty value is true, so match it
       if ival != value:
         return False
     return True
diff --git a/configs/core_test.py b/configs/core_test.py
index db97834..21b1f5f 100644
--- a/configs/core_test.py
+++ b/configs/core_test.py
@@ -14,20 +14,33 @@
 def testConfigCore():
   hosts = core.Hosts()
   WVPASSEQ(len(hosts), 0)
-  h = hosts.FindOrAdd(ether='11:22:33:44:55:66')
-  h.Set(name='testname', ip='1.2.3.4')
-  h.platform = 'bob'
+  h1 = hosts.FindOrAdd(ether='11:22:33:44:55:66')
+  h1.Set(name='testname', ip='1.2.3.4')
+  h1.platform = 'bob'
   WVPASSEQ(len(hosts), 1)
-  h2 = hosts.FindOrAdd(ip='1.2.3.4')
+  h1b = hosts.FindOrAdd(ip='1.2.3.4')
   WVPASSEQ(len(hosts), 1)
-  WVPASSEQ(h2.name, 'testname')
-  WVPASSEQ(h2.ether, '11:22:33:44:55:66')
-  WVPASSEQ(h, h2)
+  WVPASSEQ(h1b.name, 'testname')
+  WVPASSEQ(h1b.ether, '11:22:33:44:55:66')
+  WVPASSEQ(h1, h1b)
 
   # test Host.Query()
-  WVPASSEQ(hosts.Query(ip=True), [h])
+  WVPASSEQ(hosts.Query(ip=True), [h1])
   WVPASSEQ(hosts.Query(ip=False), [])
-  WVPASSEQ(hosts.Query(ip='1.2.3.4'), [h])
+  WVPASSEQ(hosts.Query(ip='1.2.3.4'), [h1])
   WVPASSEQ(hosts.Query(ip='1.2.3.5'), [])
   WVPASSEQ(hosts.Query(ip='1.2.3.4', maxcount=0), [])
   WVEXCEPT(core.QueryError, hosts.Query, ip='1.2.3.5', mincount=1)
+
+  # add a second host
+  h2 = hosts.FindOrAdd(ether='22:33:44:22:33:44')
+  h2.Set(name='test2')
+
+  WVPASSEQ(len(hosts), 2)
+  WVPASSEQ(hosts.Query(ip='1.2.3.4'), [h1])
+  WVPASSEQ(hosts.Query(ip=None), [h2])
+  WVPASSEQ(hosts.Query(name='test2'), [h2])
+  WVPASSEQ(hosts.Query(ip=True), [h1])
+  WVPASSEQ(sorted(hosts.Query(name=True)), sorted([h1, h2]))
+  WVPASSEQ(hosts.Query(ether=True, name='test2'), [h2])
+  WVPASSEQ(hosts.Query(ether=True, name='testname'), [h1])
