diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e16c796d28d79cdb1f1f7ffe92406fde8b98bda..176d51bb9a344933af9199c433ed38c18978cfce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
+
+	PR target/7361
+	* config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
+	constant addresses only on 68HC12.
+
 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
 
 	* cppfiles.c (stack_include_file): Correct test of whether
diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c
index 6a7222240107e830a9c4f8de8757703ed5162cec..af47a5524601d0ef51a31431aa76a43fb593a4b1 100644
--- a/gcc/config/m68hc11/m68hc11.c
+++ b/gcc/config/m68hc11/m68hc11.c
@@ -660,7 +660,7 @@ go_if_legitimate_address_internal (operand, mode, strict)
      enum machine_mode mode;
      int strict;
 {
-  if (CONSTANT_ADDRESS_P (operand))
+  if (CONSTANT_ADDRESS_P (operand) && TARGET_M6812)
     {
       /* Reject the global variables if they are too wide.  This forces
          a load of their address in a register and generates smaller code.  */