diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index eff982f4a03b..a1ec1d12c083 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-23  Jason Merrill  <jason@redhat.com>
+
+	* include/bits/locale_facets.h (class num_get): Undo reordering of
+	do_get virtual functions.
+
 2012-02-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
 
 	* testsuite/26_numerics/random/
diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h
index 3b3139f9a824..dc95f5a75517 100644
--- a/libstdc++-v3/include/bits/locale_facets.h
+++ b/libstdc++-v3/include/bits/locale_facets.h
@@ -2168,6 +2168,9 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
        *  @param  __v  Value to format and insert.
        *  @return  Iterator after reading.
       */
+      virtual iter_type
+      do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;
+
       virtual iter_type
       do_get(iter_type __beg, iter_type __end, ios_base& __io,
 	     ios_base::iostate& __err, long& __v) const
@@ -2200,9 +2203,6 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       { return _M_extract_int(__beg, __end, __io, __err, __v); }
 #endif
 
-      virtual iter_type
-      do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;
-
       virtual iter_type
       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const;