diff -dur boost.org\asio\detail\impl/win_iocp_handle_service.ipp boost.new\asio\detail\impl/win_iocp_handle_service.ipp --- boost.org\asio\detail\impl/win_iocp_handle_service.ipp 2013-06-24 15:40:25.927381600 +0300 +++ boost.new\asio\detail\impl/win_iocp_handle_service.ipp 2013-06-24 15:02:48.647676200 +0300 @@ -440,16 +440,19 @@ if (!ok) { DWORD last_error = ::GetLastError(); - if (last_error == ERROR_HANDLE_EOF) - { - ec = boost::asio::error::eof; - } - else + if (last_error != ERROR_MORE_DATA) { - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); + if (last_error == ERROR_HANDLE_EOF) + { + ec = boost::asio::error::eof; + } + else + { + ec = boost::system::error_code(last_error, + boost::asio::error::get_system_category()); + } + return 0; } - return 0; } ec = boost::system::error_code();