Hi, I wrote TCP client program using boost::asio. OS: Debian GNU/Linux (x86_64) Boost: 1.49 I use asio::ip::tcp::socket::async_conect function and I called ip::tcp::socket::remote_endpoint at async_connect callback. Like this: // async_resolve handler void my_class::handle_resolve(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) { if (!error) { socket_.async_connect(endpoint, strand_.wrap(...)); } } void my_class::handle_connect(const boost::system::error_code& error, boost::asio::ip::tcp::resolver::iterator endpoint_iterator) { if (!error) { // socket_ is my_class member. socket_.remote_endpoint(); // throw exception ! } ... } ip::tcp::socket::remote_endpoint sometime throws boost::system::system_error exception (error message is "remote_endpoint: Transport endpoint is not connected"). But async_connect is successfully completed. Why does remote_endpoint function throw exception? Thank you,