diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ba4a8b5ead583b1b697c8bb84d1795612730bfa4..4b62eb41e435eb7dc17c69a511f186f65bb22f04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-19  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
+	from accepting 's' constraints if flag_pic.
+
 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
 
 	* config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index e85c1d9b5fab1f7b8ebe7f0d2c69be8ef64a3bd5..5ab146162240995008ba1d53fef8293bf031c51f 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -526,7 +526,7 @@ extern enum reg_class regno_reg_class[];
 	  || GET_CODE (XEXP (OP, 0)) == CONST))		\
    : 							\
    (CODE) == 'T'					\
-   ? ( !TARGET_PCREL 					\
+   ? (!flag_pic						\
       && (GET_CODE (OP) == SYMBOL_REF			\
 	  || GET_CODE (OP) == LABEL_REF			\
 	  || GET_CODE (OP) == CONST))			\