diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a50a06ed84678c226edd21c1731daecfa2d58a57..05581772ec23f35f820faf953951efb487b4c5ec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-11  Mark Mitchell  <mark@codesourcery.com>
+
+	PR target/26459
+	* config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
+	rs6000_explicit_options.float_gprs.
+
 2006-04-10  Roger Sayle  <roger@eyesopen.com>
 
 	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
diff --git a/gcc/config/rs6000/e500-double.h b/gcc/config/rs6000/e500-double.h
index 3c0d906a4bdab3d44da8e9daf144abf32358fadc..55587e469b832f93e6005355801808df8e30e913 100644
--- a/gcc/config/rs6000/e500-double.h
+++ b/gcc/config/rs6000/e500-double.h
@@ -1,5 +1,5 @@
 /* Target definitions for E500 with double precision FP.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
    Contributed by Aldy Hernandez (aldyh@redhat.com).
 
    This file is part of GCC.
@@ -21,5 +21,5 @@
 
 #undef  SUB3TARGET_OVERRIDE_OPTIONS
 #define SUB3TARGET_OVERRIDE_OPTIONS \
-  if (rs6000_float_gprs_string == NULL) \
+  if (!rs6000_explicit_options.float_gprs) \
     rs6000_float_gprs = 2;