diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e35464099ef6be1737bd028e068407214d09c33d..82646875ace67816517c876d699c957c085b0b42 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-19  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
+	for ColdFire targets.
+
 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
 	    Richard Sandiford  <richard@codesourcery.com>
 
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index c0a3f9e3b04f6fb48d15a2898281a9860be1cb53..4f42a5eaac62812873e8df651bdc329a41294bcc 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -284,6 +284,8 @@ Boston, MA 02110-1301, USA.  */
 #define STACK_BOUNDARY 16
 #define FUNCTION_BOUNDARY 16
 #define EMPTY_FIELD_BOUNDARY 16
+/* ColdFire strongly prefers a 32-bit aligned stack.  */
+#define PREFERRED_STACK_BOUNDARY (TARGET_COLDFIRE ? 32 : 16)
 
 /* No data type wants to be aligned rounder than this.
    Most published ABIs say that ints should be aligned on 16 bit