diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0234bede6f2d3aec477f84a3c7fbd15bed7c2949..b41da54c6141c0822ccb602e2d7b2bd39a004a99 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+	PR fortran/52313
+	* module.c (gfc_use_module): Improve error messages.
+
 2012-03-03  Tobias Burnus  <burnus@net-b.de>
 
 	PR fortran/48820
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 36ef4f8a088b6ba461008009d6e030f1d199d795..31d7de1e25606656aa08e315c4bc13a29404a5e7 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -6090,22 +6090,17 @@ gfc_use_module (gfc_use_list *module)
 	parse_name (c);
       if ((start == 1 && strcmp (atom_name, "GFORTRAN") != 0)
 	  || (start == 2 && strcmp (atom_name, " module") != 0))
-	gfc_fatal_error ("File '%s' opened at %C is not a GFORTRAN module "
-			 "file", filename);
+	gfc_fatal_error ("File '%s' opened at %C is not a GNU Fortran"
+			 " module file", filename);
       if (start == 3)
 	{
 	  if (strcmp (atom_name, " version") != 0
 	      || module_char () != ' '
-	      || parse_atom () != ATOM_STRING)
-	    gfc_fatal_error ("Parse error when checking module version"
-		    	     " for file '%s' opened at %C", filename);
-
-	  if (strcmp (atom_string, MOD_VERSION))
-	    {
-	      gfc_fatal_error ("Wrong module version '%s' (expected '%s') "
-			       "for file '%s' opened at %C", atom_string,
-			       MOD_VERSION, filename);
-	    }
+	      || parse_atom () != ATOM_STRING
+	      || strcmp (atom_string, MOD_VERSION))
+	    gfc_fatal_error ("Cannot read module file '%s' opened at %C,"
+			     " because it was created by an older"
+			     " version of GNU Fortran", filename);
 
 	  free (atom_string);
 	}