diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 9bbec3e279aa7c0fdce8fc4a405e5a3241afcf7f..9aa1d6b8cd730035b23d1588dd53633adbae5a99 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-13  Geoffrey Keating  <geoffk@apple.com>
+
+	* configure.host (darwin): On darwin8 or later, no need to build
+	libstdc++ with -flat_namespace.
+
 2005-01-13  Jonathan Wakely  <redi@gcc.gnu.org>
 
 	* docs/doxygen/user.cfg.in: Set HAVE_DOT back to YES.
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index 3557459426e532d4729e327f95536e7341a0025f..b3582a41d79f9516333cfc49cf5eec4da34283a3 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -174,13 +174,19 @@ case "${host_os}" in
   cygwin*)
     os_include_dir="os/newlib"
     ;;
-  darwin*)
+  darwin | darwin[1-7] | darwin[1-7].*)
     # On Darwin, performance is improved if libstdc++ is single-module.
-    # Up to at least 10.3.5, -flat_namespace is required for proper
+    # Up to at least 10.3.7, -flat_namespace is required for proper
     # treatment of coalesced symbols.
     OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module -Wl,-flat_namespace"
     os_include_dir="os/bsd/darwin"
     ;;
+  darwin[89] | darwin[89].* | darwin[1-9][0-9]* )
+    # On Darwin, performance is improved if libstdc++ is single-module,
+    # and on 8+ compatibility is better if not -flat_namespace.
+    OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module"
+    os_include_dir="os/bsd/darwin"
+    ;;
   *djgpp*)      # leading * picks up "msdosdjgpp"
     os_include_dir="os/djgpp"
     ;;