diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6a2316d1ccc6b1a9989d3ac6d6e3fb2640bd2779..355ed145abbad8ea48f962997d20c3be8b2392a4 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+	* trans-stmt.c (gfc_trans_allocate): free lhs expr.
+
 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
 
 	* trans-array.c (gfc_free_ss_chain): Made non-static.
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index c0ffd161b7891a2d1f279f051f3618551eb8ecac..70ddd51902fbeccbdb9595d153b7f88cf4d3882e 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -4567,6 +4567,7 @@ gfc_trans_allocate (gfc_code * code)
 			fold_convert (TREE_TYPE (lse.expr), tmp));
 		}
 	    }
+	  gfc_free_expr (lhs);
 	}
 
     }