diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index edd525ac2b6284281e2699d4964699e2e7c9d2f7..2fc135f3b50331ef1f6e7985c5ea035d1af72e4d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
+
+	PR libfortran/19595
+	* gfortran.dg/eor_1.f90:  New test.
+
 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
 
 	PR fortran/19589
diff --git a/gcc/testsuite/gfortran.dg/eor_1.f90 b/gcc/testsuite/gfortran.dg/eor_1.f90
new file mode 100644
index 0000000000000000000000000000000000000000..c61a0b7c87f586954fdc754f815d0500b5a2155a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/eor_1.f90
@@ -0,0 +1,10 @@
+! { dg do-run }
+! PR 19451: The test for advance='NO' with eor used to be reversed.
+program main
+  character*2 c
+  open(12, status='SCRATCH')
+  write(12, '(A)') '123', '456'
+  rewind(12)
+  read(12, '(A2)', advance='NO', eor=100) c
+100 continue
+end program main
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index effa7673313e05453003d69c852709a1722c73fb..be7bfa8f3434c775cec0843b0c70f5465f65b66d 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
+
+	PR libfortran/19595
+	* io/transfer.c (data_transfer_init): eor requires advance="NO".
+
 2005-01-25  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
 	PR libfortran/19524
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index c69d3092ca2e6fda7c3753cc2c2a9092bb7d2819..a55936f9e6c6deb915b744fad4e6bc0878eb0440 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -1041,7 +1041,7 @@ data_transfer_init (int read_flag)
 
   if (read_flag)
     {
-      if (ioparm.eor != 0 && advance_status == ADVANCE_NO)
+      if (ioparm.eor != 0 && advance_status != ADVANCE_NO)
 	generate_error (ERROR_MISSING_OPTION,
 			"EOR specification requires an ADVANCE specification of NO");