diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 592d37b02d6c1f5b17611f9eb89d8e3882eac37a..33afd97171d7b4317ec867ccfe206b0eb85448d7 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/45793
+	* module.c (create_int_parameter_array): Set the array value shape.
+
 2010-09-25  Tobias Burnus  <burnus@net-b.de>
 
 	* gfortran.texi: Re-add accidently removed \input line.
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index d4824a73da11c16da963b78bbec2136a22e22905..5c1e5c79276ca6e4c9c6383ec507fdce710d5376 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -5305,7 +5305,8 @@ create_int_parameter (const char *name, int value, const char *modname,
 }
 
 
-/* Value is already contained the array constructor, but not yet the shape.  */
+/* Value is already contained by the array constructor, but not
+   yet the shape.  */
 
 static void
 create_int_parameter_array (const char *name, int size, gfc_expr *value,
@@ -5313,7 +5314,6 @@ create_int_parameter_array (const char *name, int size, gfc_expr *value,
 {
   gfc_symtree *tmp_symtree;
   gfc_symbol *sym;
-  gfc_expr *e;
 
   tmp_symtree = gfc_find_symtree (gfc_current_ns->sym_root, name);
   if (tmp_symtree != NULL)
@@ -5342,8 +5342,8 @@ create_int_parameter_array (const char *name, int size, gfc_expr *value,
   sym->as->upper[0] = gfc_get_int_expr (gfc_default_integer_kind, NULL, size); 
 
   sym->value = value;
-  e->shape = gfc_get_shape (1);
-  mpz_init_set_ui (e->shape[0], size);
+  sym->value->shape = gfc_get_shape (1);
+  mpz_init_set_ui (sym->value->shape[0], size);
 }