diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 463409c6486b2df202c93f85d1ac281b41c9e18b..83866c179ec8bdcaf862160fb83811f2d25bd8c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-02-10  DJ Delorie  <dj@redhat.com>
+
+	* config/m32c/m32c.c (m32c_option_override): Disable
+	-fcombine-stack-adjustments until flag value tracking and compare
+	optimization can be rewritten.
+
 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
 
 	* config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index ef0a311518cf722b5da8647ec740bda85c24b927..83bf86c2071f1a0e2eb6bfe553b9e09721d73a57 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -454,6 +454,11 @@ m32c_option_override (void)
      This is always worse than an absolute call.  */
   if (TARGET_A16)
     flag_no_function_cse = 1;
+
+  /* This wants to put insns between compares and their jumps.  */
+  /* FIXME: The right solution is to properly trace the flags register
+     values, but that is too much work for stage 4.  */
+  flag_combine_stack_adjustments = 0;
 }
 
 #undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE