Index: subversion/libsvn_ra_serf/replay.c =================================================================== --- subversion/libsvn_ra_serf/replay.c (revision 1422748) +++ subversion/libsvn_ra_serf/replay.c (working copy) @@ -740,6 +740,8 @@ svn_ra_serf__list_t *done_list; svn_ra_serf__list_t *done_reports = NULL; replay_context_t *replay_ctx; + svn_ra_serf__handler_t *handler; + svn_error_t *err; if (session->cancel_func) SVN_ERR(session->cancel_func(session->cancel_baton)); @@ -748,7 +750,6 @@ requests to MAX_OUTSTANDING_REQUESTS. */ if (rev <= end_revision && active_reports < MAX_OUTSTANDING_REQUESTS) { - svn_ra_serf__handler_t *handler; svn_ra_serf__xml_parser_t *parser_ctx; apr_pool_t *ctx_pool = svn_pool_create(pool); @@ -832,8 +833,16 @@ } /* Run the serf loop. */ - SVN_ERR(svn_ra_serf__context_run_wait(&replay_ctx->done, session, pool)); + err = svn_ra_serf__context_run_wait(&replay_ctx->done, session, pool); + /* Handle the errors from server's response as well as any errors + found while running the serf loop. */ + SVN_ERR(svn_error_compose_create( + svn_ra_serf__error_on_status(handler->sline.code, + handler->path, + handler->location), + err)); + /* Substract the number of completely handled responses from our total nr. of open requests', so we'll know when to stop this loop. Since the message is completely handled, we can destroy its pool. */