diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 1f60b343271aed629ba5b37b45098a2084a3d63c..025471ec1ce1ea7e60666ea2a89d16e7b0f6f98a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
 2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
 
+	PR fortran/32156
+	* trans-array.c (gfc_trans_array_constructor): Treat the case
+	where the ss expression charlen is missing.
+
+22007-05-31  Paul Thomas  <pault@gcc.gnu.org>
+
 	PR fortran/32103
 	* module.c (mio_symtree_ref): If an equivalence group member
 	is not used, give it a hidden symbol and set the pointer_info.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 86e6766ed6159eaa2d07cb7f6943696fdcb720eb..f659b4b9c7e9ef87c88753d0f8d1ceb2457e031f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+007-05-31  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/32156
+	* gfortran.dg/char_array_constructor_3.f90: New test.
+
 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
 
 	PR tree-optimization/32160
diff --git a/gcc/testsuite/gfortran.dg/char_array_constructor_3.f90 b/gcc/testsuite/gfortran.dg/char_array_constructor_3.f90
new file mode 100644
index 0000000000000000000000000000000000000000..d4c49643f9e43753e011199481c8debfb5c89726
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/char_array_constructor_3.f90
@@ -0,0 +1,8 @@
+! { dg-do compile }
+! tests the fix for PR32156, in which the character length of the compound
+! expression got lost.
+!
+! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
+!
+write (*,'(2A3)') 'X'//(/"1","2"/)//'Y'
+END