diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e77633305dfcbc35a6a6a41b6687bed1d28c6e99..bf755d66e30ff1b14e7dde7545314e1fa5370def 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2006-09-21  Roger Sayle  <roger@eyesopen.com>
+
+	PR debug/29132
+	* dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
+	dw_fde_current_label, to be the start of the function, i.e. the same
+	value as dw_fde_begin.
+
 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
 
 	* config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index e82c81cc0a0cf4867a9be2184edff692d06ad168..0b655b44d51214df691c495e8ed76a524f28e77e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -2572,7 +2572,7 @@ dwarf2out_begin_prologue (unsigned int line ATTRIBUTE_UNUSED,
   fde = &fde_table[fde_table_in_use++];
   fde->decl = current_function_decl;
   fde->dw_fde_begin = dup_label;
-  fde->dw_fde_current_label = NULL;
+  fde->dw_fde_current_label = dup_label;
   fde->dw_fde_hot_section_label = NULL;
   fde->dw_fde_hot_section_end_label = NULL;
   fde->dw_fde_unlikely_section_label = NULL;