anchor.diff:  
   				return c;
   			});
  -		} else {
  -			return _whenConnectionReleased().then((_) {
  -				return connect(timeout);
  -			});
  -		}
  +
  +		return _whenConnectionReleased().then((_) {
  +			return connect(timeout);
  +		});
   	}
   
   	// Close all connections and cleanup.
  
positive.code: 		if (!_available.isEmpty)
  			return new Future.value(_available.removeAt(0));
  
  		if (_count < _max) {
  			return _incConnections().then((_) {
  				if (_available.isEmpty)
  					throw new Exception('No connections available.'); //FIXME exception type.
  
negative.code: 		if (!waitForConnectionRelease) {
  			// Immediately close all connections
  			for (var c in _connections)
  				c.close();
  
  			_available.clear();
  			_connections.clear();
  