diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 90b431805cb7d1360ba35578f1bd679dca8eb03e..eaddca326b7857b236f2812d46621611738cc199 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+	PR libfortran/25116
+	* io/transfer.c (data_transfer_init): Don't set the default for
+	namelist I/O on preconnected files to UNFORMATTED.
+
 2005-11-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
 	* libgfortran.h (ILP32 typedefs): Define _UINT8_T, _UINT32_T and
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 44cf27ec65af2885a65340750105a2c42da70ad2..84d3532deac6f21e1a8d1d611716056639e11988 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -1239,11 +1239,14 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
      memset (&u_flags, '\0', sizeof (u_flags));
      u_flags.access = ACCESS_SEQUENTIAL;
      u_flags.action = ACTION_READWRITE;
+
      /* Is it unformatted?  */
-     if (!(cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT)))
+     if (!(cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT
+		 | IOPARM_DT_IONML_SET)))
        u_flags.form = FORM_UNFORMATTED;
      else
        u_flags.form = FORM_UNSPECIFIED;
+
      u_flags.delim = DELIM_UNSPECIFIED;
      u_flags.blank = BLANK_UNSPECIFIED;
      u_flags.pad = PAD_UNSPECIFIED;