diff -r acc997e0d0f9 -r bf485439222a dav/sync.c --- a/dav/sync.c Sun Mar 20 15:28:08 2016 +0100 +++ b/dav/sync.c Sun Mar 20 16:13:41 2016 +0100 @@ -780,6 +780,7 @@ print_resource_error(sn, res->path); ret = -1; sync_error++; + error = 1; } } else { if(cdt && remote_resource_is_changed(sn, dir, db, local_res)) { @@ -793,7 +794,6 @@ sync_error++; print_resource_error(sn, res->path); ret = -1; - sync_error++; error = 1; } } @@ -1102,7 +1102,7 @@ (*counter)++; // check contentlength and get new etag - DavResource *up_res = dav_get(res->session, res->path, "D:getetag"); + DavResource *up_res = dav_get(res->session, res->path, "D:getetag,idav:status"); if(up_res) { // the new content length must be equal or greater than the file size @@ -1129,9 +1129,12 @@ } else { local->etag = NULL; } - dav_resource_free(up_res); - sync_remove_status(res); + if(dav_get_property(up_res, "idav:status")) { + sync_remove_status(up_res); + } + + dav_resource_free(up_res); } } } else {