diff --git a/ChangeLog b/ChangeLog
index c478c1d94e56ccbe6ecffe85abca5e8b33fd6877..0a4edda0a3ca1ae340d5cb8baa69259b26e0e09b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-26  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* config.if (libstdcxx_incdir): Version C++ headers.
+	(cxx_incdir): Remove. 
+
 2002-06-25  Nathanael Nerode  <neroden@gcc.gnu.org>
 
 	* MAINTAINERS (Write After Approval): Add self.
diff --git a/config.if b/config.if
index e8978cae6643ec1a43d96f6b3ad02aaf45082a5b..aa35a3f8140ce28cc15328337e2247b4e6746d35 100644
--- a/config.if
+++ b/config.if
@@ -2,9 +2,8 @@
 # Don't call it directly. This shell script fragment is called to
 # determine:
 #
-#	1. libstcxx_interface: the interface name for libstdc++.
-#	2. cxx_interface: the interface name for c++.
-#	3. libc_interface: the interface name for libc.
+#	1. libstcxx_incdir: the interface name for libstdc++.
+#	2. libc_interface: the interface name for libc.
 #
 
 # Get the top level src dir.
@@ -21,12 +20,12 @@ else
   if_topsrcdir=${top_srcdir}
 fi
 
-libstdcxx_srcdir=${if_topsrcdir}/libstdc++-v3
-# We check libstdc++-v3/configure.in for libstdcxx_interface.
-libstdcxx_interface=`grep "^INTERFACE" ${libstdcxx_srcdir}/configure.in | sed 's/INTERFACE[ 	]*=[ 	]*\(.*\)/\1/'`
-libstdcxx_incdir=g++-${libstdcxx_interface}
-# Used to version libstdc++ shared libraries
-cxx_interface=2
+# Set libstdcxx_incdir.
+# This is the same as gcc/configure.in and libstdc++-v3/acinclude.m4. 
+gcc_version_trigger=${if_topsrcdir}/gcc/version.c
+gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
+gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
+libstdcxx_incdir=c++/${gcc_version}
 
 # The trickiest part is libc_interface.
 if [ -z "${libc_interface}" ]