Blob Blame History Raw
diff --git a/libpurple/ft.c b/libpurple/ft.c
index c15efcf..a9cadaf 100644
--- a/libpurple/ft.c
+++ b/libpurple/ft.c
@@ -1106,11 +1106,9 @@ purple_xfer_write(PurpleXfer *xfer, const guchar *buffer, gsize size)
 		r = write(xfer->fd, buffer, s);
 		if (r < 0 && errno == EAGAIN)
 			r = 0;
+		if ((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer))
+			purple_xfer_set_completed(xfer, TRUE);
 	}
-	if (r >= 0 && (purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer) &&
-		!purple_xfer_is_completed(xfer))
-		purple_xfer_set_completed(xfer, TRUE);
-	
 
 	return r;
 }