diff --git a/src/NameService.cxx b/src/NameService.cxx
index 53cb773f90b4238c13b6bcfa5544aa379d432f2e..ff5b52f470e739fc1c5c6e0b28ad7e4b6d2ffb0d 100644
--- a/src/NameService.cxx
+++ b/src/NameService.cxx
@@ -4,9 +4,9 @@
 
 #include "MsgInfo.h"
 
-#include "is/infoiterator.h"
 #include "is/infostream.h"
 #include "is/infodictionary.h"
+#include "is/serveriterator.h"
 
 namespace daq {
 
@@ -94,7 +94,7 @@ namespace daq {
                                 break;
                             }
                         }
-
+                        
                         if(matches) {
                             info.Addresses.push_back(intf->address_string() + '/' + intf->netmask_string());
                         }
@@ -108,8 +108,11 @@ namespace daq {
 
             ISInfoDictionary d(m_partition);
 
-            // may throw
-            d.checkin(m_is_server + ".MSG_" + name, info);
+            ISServerIterator servers(m_partition, m_is_server + ".*");
+            while(servers++) {
+                // may throw
+                d.checkin(std::string(servers.name()) + ".MSG_" + name, info);
+            }
 
         }