Applying my updated version of Craig Barratt's buffered I/O patch.
diff --git a/receiver.c b/receiver.c
index 699ed0e..ed7bcc5 100644
--- a/receiver.c
+++ b/receiver.c
@@ -303,6 +303,8 @@
 		offset += len;
 	}
 
+	flush_write_file(fd);
+
 	if (do_progress)
 		end_progress(total_size);