diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b2d7fed02d74b6c88abae5a1239504b9d18e12c7..a70aceba4f2d5ea1bf4f5dccbc722fb1e9a5bdda 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-03-01  Christian Bruel  <christian.bruel@st.com>
+
+	* except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
+	
 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
diff --git a/gcc/except.c b/gcc/except.c
index 8012d7818340a26090191dee8f56f8d625847f60..bdf98ef4c02257e15de685f8be9ca38425fccac4 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -974,6 +974,7 @@ dw2_build_landing_pads (void)
 
       lp->landing_pad = gen_label_rtx ();
       emit_label (lp->landing_pad);
+      LABEL_PRESERVE_P (lp->landing_pad) = 1;
 
 #ifdef HAVE_exception_receiver
       if (HAVE_exception_receiver)