diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index d60193afb584072b8f723a4b86ad621125b43cc2..efd38f64cb57eb14c302d9551b266dfc64c05e54 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,10 @@
+2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libgfortran/25594
+	PR libgfortran/25419
+	* io/list_read.c (list_formatted_read_scalar): Test for comma to return
+	a null value (default). Revert patch of 25419 on 2005-12-28.  
+
 2005-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	PR libgfortran/25139
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index 879cf8f3230a3624616132b9d21ae5e7b3fbd457..793f0e25d4134e24e2b81cda442598719c736fa9 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -1353,7 +1353,16 @@ list_formatted_read_scalar (st_parameter_dt *dtp, bt type, void *p, int kind,
 	{			/* Found a null value.  */
 	  eat_separator (dtp);
 	  dtp->u.p.repeat_count = 0;
-	  goto cleanup;
+
+	  /* eat_separator sets this flag if the separator was a comma */
+	  if (dtp->u.p.comma_flag)
+	    goto cleanup;
+
+	  /* eat_separator sets this flag if the separator was a \n or \r */
+	  if (dtp->u.p.at_eol)
+	    finish_separator (dtp);
+	  else
+	    goto cleanup;
 	}
 
     }