diff --git a/lib/pool.js b/lib/pool.js
index <HASH>..<HASH> 100644
--- a/lib/pool.js
+++ b/lib/pool.js
@@ -71,7 +71,7 @@ util.inherits(Pool, process.EventEmitter);
 Pool.prototype.connect = function(callback){
   var i = 0, finished = 0, self = this,
       len = this.hosts.length * this.hostPoolSize,
-      connected = 0;
+      connected = 0, poolKeyspace;
 
   function onConnect(err, connection, keyspace, host){
     finished += 1;
@@ -80,22 +80,19 @@ Pool.prototype.connect = function(callback){
       self.dead.push(host);
     } else {
       connected += 1;
-
       if(keyspace){
+        poolKeyspace = keyspace;
         keyspace.connection = self;
       }
       self.clients.push(connection);
-
-      // Callback on the first good client.
-      if(connected === 1){
-        callback(null, keyspace);
-      }
     }
 
     if(finished === len){
       // if there are no clients, we haven't called back and are not available
       if(connected === 0){
         replyNotAvailable(callback);
+      } else {
+        callback(null, poolKeyspace);
       }
       //now that we have a connection, lets start monitoring
       self.monitorConnections();
Adding fix for connections when last node might be down