diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6a9b143b96c78fb02883c77869ee27eeeb8c0665..ca0dfa0a170b07d53a1d800f3229c55180409faa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* config/s390/s390.c (s390_class_max_nregs): Fix return type.
+	* config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
+
 2011-07-20  Richard Guenther  <rguenther@suse.de>
 
 	PR middle-end/18908
diff --git a/gcc/config/s390/s390-protos.h b/gcc/config/s390/s390-protos.h
index 79fce849a163a40be5707345d1db02db8bdb0f59..01a3584fe8676ffb3841a6c132c3c9a9b9fdf681 100644
--- a/gcc/config/s390/s390-protos.h
+++ b/gcc/config/s390/s390-protos.h
@@ -41,7 +41,7 @@ extern void s390_function_profiler (FILE *, int);
 extern void s390_set_has_landing_pad_p (bool);
 extern bool s390_hard_regno_mode_ok (unsigned int, enum machine_mode);
 extern bool s390_hard_regno_rename_ok (unsigned int, unsigned int);
-extern bool s390_class_max_nregs (enum reg_class, enum machine_mode);
+extern int s390_class_max_nregs (enum reg_class, enum machine_mode);
 
 #ifdef RTX_CODE
 extern int s390_extra_constraint_str (rtx, int, const char *);
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 5976b7fd328a7ede7edc871a79474fa2fcb4c6af..d52765eb0352761999075f98fec1c8bf79cc0bf0 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -7572,7 +7572,7 @@ s390_hard_regno_rename_ok (unsigned int old_reg, unsigned int new_reg)
 /* Maximum number of registers to represent a value of mode MODE
    in a register of class RCLASS.  */
 
-bool
+int
 s390_class_max_nregs (enum reg_class rclass, enum machine_mode mode)
 {
   switch (rclass)