diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index de8ad3ae18fa..d72548d20e74 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* stmt.c (expand_goto): Memory clobbers added.
+
 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
 
 	* reload.c (find_reloads): Added missing type casts.
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 3c8e2863eddf..34e9457db4e3 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -647,6 +647,13 @@ expand_goto (tree label)
       else
 #endif
 	{
+	  emit_insn (gen_rtx_CLOBBER (VOIDmode,
+				      gen_rtx_MEM (BLKmode,
+						   gen_rtx_SCRATCH (VOIDmode))));
+	  emit_insn (gen_rtx_CLOBBER (VOIDmode,
+				      gen_rtx_MEM (BLKmode,
+						   hard_frame_pointer_rtx)));
+
 	  /* Restore frame pointer for containing function.
 	     This sets the actual hard register used for the frame pointer
 	     to the location of the function's incoming static chain info.