Index: boost/mpi/nonblocking.hpp =================================================================== --- boost/mpi/nonblocking.hpp (revision 86732) +++ boost/mpi/nonblocking.hpp (working copy) @@ -60,9 +60,9 @@ while (true) { // Check if we have found a completed request. If so, return it. if (current->m_requests[0] != MPI_REQUEST_NULL && - current->m_requests[1] != MPI_REQUEST_NULL && - optional result = current->test()) - return std::make_pair(*result, current); + current->m_requests[1] != MPI_REQUEST_NULL) + if (optional result = current->test()) + return std::make_pair(*result, current); // Check if this request (and all others before it) are "trivial" // requests, e.g., they can be represented with a single