                 self.peers.append(peer)
                 NSLog("BluepeerObject didFind: created new peer \(peer.displayName). Peers.count after adding: \(self.peers.count)")
             } else {
-                NSLog("BluepeerObject didFind: found existing peer \(peer?.displayName) with same service - no-op!")
+                NSLog("BluepeerObject didFind: found existing peer \(peer?.displayName), replacing with newer service")
+                peer?.dnsService?.endResolve()
+                peer?.dnsService = service
             }
 
             let prots = UInt32(kDNSServiceProtocol_IPv4) | UInt32(kDNSServiceProtocol_IPv6)

            
            // if this peer eixsts, then add this as another address(es), otherwise add now
            var peer = self.peers.filter({ $0.displayName == service.name }).first
            if peer != nil {
                if service != peer?.dnsService {
                    NSLog("BluepeerObject didFind: found existing peer but it has a different dnsService! creating new peer instead")
                    peer = nil
                }
            }
            
            if peer == nil {
                peer = BPPeer.init()

        self.browser = nil
        self.browsing = false
        for peer in self.peers {
            peer.dnsService?.endResolve()
            peer.dnsService = nil
            peer.announced = false
        }
    }
    
