diff --git a/src/coio.cc b/src/coio.cc
index 282b3db407718a6764347a79f3a2416fe3e47cf9..612bdd90da0a905cd21f77d0b0a8d5bfae18212b 100644
--- a/src/coio.cc
+++ b/src/coio.cc
@@ -191,10 +191,9 @@ coio_connect_timeout(struct ev_io *coio, const char *host, const char *service,
 			}
 			return 0; /* connected */
 		} catch (SocketError *e) {
-			/* ignore */
-			say_error("failed to connect to %s: %s",
-				  sio_strfaddr(ai->ai_addr, ai->ai_addrlen),
-				  e->errmsg());
+			if (ai->ai_next == NULL)
+				throw;
+			/* ignore exception and try the next address */
 		}
 		ai = ai->ai_next;
 		ev_now_update(loop);