diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index cdd47466d2571dded6582e8af21a84de7336c210..7869d5122f5a10b1d652b6bc4b548c95374b7eff 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/42852
+	* scanner.c (gfc_next_char_literal): Enable truncation warning for
+	free-form '&'.
+
 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
 
 	PR fortran/44660
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index acc2f5a770853aed5323e462102070d58213a909..744abeb26e3cc46ce8b76a9e7b17bf2b9ecc7268 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -1581,7 +1581,8 @@ load_line (FILE *input, gfc_char_t **pbuf, int *pbuflen, const int *first_char)
 	      if (!trunc_warn && c != '!')
 		trunc_warn = true;
 
-	      if (trunc_warn && (c == '&' || c == '!'))
+	      if (trunc_warn && ((gfc_current_form == FORM_FIXED && c == '&')
+		  || c == '!'))
 		trunc_warn = false;
 
 	      if (c == '!')