diff --git a/discover/client.go b/discover/client.go
index <HASH>..<HASH> 100644
--- a/discover/client.go
+++ b/discover/client.go
@@ -205,7 +205,7 @@ func (s *ServiceSet) Unwatch(ch chan *ServiceUpdate) {
 }
 
 func (s *ServiceSet) Wait() (*ServiceUpdate, error) {
-	updateCh := make(chan *ServiceUpdate, 1)
+	updateCh := make(chan *ServiceUpdate, 1024) // buffer because of Watch bringCurrent race bug
 	s.Watch(updateCh, true)
 	defer s.Unwatch(updateCh)
 	select {
diff --git a/discover/client_test.go b/discover/client_test.go
index <HASH>..<HASH> 100644
--- a/discover/client_test.go
+++ b/discover/client_test.go
@@ -145,7 +145,12 @@ func TestClient(t *testing.T) {
 		t.Fatal("Registering service failed", err)
 	}
 	for i := 0; i < 5; i++ {
-		update := <-updates
+		var update *ServiceUpdate
+		select {
+		case update = <-updates:
+		case <-time.After(3 * time.Second):
+			t.Fatal("Timeout exceeded")
+		}
 		if update.Online != true {
 			t.Fatal("Service update of unexected status: ", update, i)
 		}
discoverd: ran into race regarding bringCurrent. temp workaround until handled as separate issue