diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 009b044f51df7871d44325b41466703da069026b..d19a8ea405a3a0620a26e6866e88e7509d616859 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libgfortran/25835
+	* io/transfer.c (st_read_done): Flush buffers when read is done.
+
 2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	PR libgfortran/25697
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index b5b8df45e9cff2f1ce9b15599b2b5a64d010ebf6..1d8330fe453da6ba6ad38d4a9eaea02504caeeef 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -2173,6 +2173,7 @@ export_proto(st_read_done);
 void
 st_read_done (st_parameter_dt *dtp)
 {
+  flush(dtp->u.p.current_unit->s);
   finalize_transfer (dtp);
   free_format_data (dtp);
   free_ionml (dtp);