diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 935d980af1b8576fd04675bdefc2887437b63aa0..9f6ec57e1fbab130549bff200e4415be9ca6a046 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* config/s390/s390.c (legitimize_pic_address): Do not generate
+	illegal address constant without CONST.
+
 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 131f6ecbb60488ec3777d1b3580f6883a1c9eca3..c052e049fa6b4324073bc18d2be8681e44157861 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -1711,6 +1711,7 @@ legitimize_pic_address (orig, reg)
                         {
                           int even = INTVAL (op1) - 1;
                           op0 = gen_rtx_PLUS (Pmode, op0, GEN_INT (even));
+			  op0 = gen_rtx_CONST (Pmode, op0);
                           op1 = GEN_INT (1);
                         }