diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 04a98956e22b8e2588feec34e00161301531ce45..85ca56a034689f353dce4d139afd760c004ad3e1 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2003-05-30  Phil Edwards  <pme@gcc.gnu.org>
+
+	* docs/doxygen/filter:  New file.
+	* docs/doxygen/filter.sed:  New file.
+	* docs/doxygen/run_doxygen:  Add g flag to sed substitutions.  Duh.
+	* docs/doxygen/user.cfg.in (INPUT_FILTER):  Point to new filter.
+	* docs/html/documentation.html:  Fix links to doxygen pages.
+
 2003-05-30  Paolo Carlini  <pcarlini@unitus.it>
 
 	* include/bits/fstream.tcc (_M_convert_to_external): Don't
diff --git a/libstdc++-v3/docs/doxygen/filter b/libstdc++-v3/docs/doxygen/filter
new file mode 100755
index 0000000000000000000000000000000000000000..4ea2d41b955c43495df462a3c6789d5b012e1944
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/filter
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+script=$1
+file=$2
+
+# Possibly allow some files to go unchanged.  Other
+# future manipulations are likely.
+case $file in
+ */alloc_policies.h)
+  cat $file ;;
+ *) sed -f $script $file ;;
+esac
+
diff --git a/libstdc++-v3/docs/doxygen/filter.sed b/libstdc++-v3/docs/doxygen/filter.sed
new file mode 100644
index 0000000000000000000000000000000000000000..e9c11a481c03e9b1801764797bccc6718d618455
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/filter.sed
@@ -0,0 +1,26 @@
+# Input filter for doxygen.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Phil Edwards <pme@gcc.gnu.org>
+
+# single+capital is easy
+s/_Tp/Type/g
+s/_\([A-Z]\)/\1/g
+
+# double+lower is not so easy; some names should be left alone.
+# The following is a sloppy start.  Possibly just require GNU tools
+# and use extensions.
+s/__a/a/g
+s/__c/c/g
+s/__first/first/g
+s/__in/in/g
+s/__last/last/g
+s/__n/n/g
+s/__out/out/g
+s/__pred/pred/g
+s/__position/position/g
+s/__pos/position/g
+s/__s/s/g
+s/__value/value/g
+s/__x/x/g
+s/__y/y/g
+
diff --git a/libstdc++-v3/docs/doxygen/run_doxygen b/libstdc++-v3/docs/doxygen/run_doxygen
index 248625a47b6c13067b6e9a2da6b390b66d65c4d2..76b51110dffbedb7ced594e7b9071b08364fd607 100644
--- a/libstdc++-v3/docs/doxygen/run_doxygen
+++ b/libstdc++-v3/docs/doxygen/run_doxygen
@@ -134,8 +134,8 @@ test $do_man = yes && {
 (
   set -e
   cd $builddir
-  sed -e "s=@outdir@=${outdir}=" \
-      -e "s=@srcdir@=${srcdir}=" \
+  sed -e "s=@outdir@=${outdir}=g" \
+      -e "s=@srcdir@=${srcdir}=g" \
       -e "s=@html_output_dir@=html_${mode}=" \
       -e "s=@enabled_sections@=${enabled_sections}=" \
       -e "s=@do_html@=${do_html}=" \
diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in
index a9644f7bd632aae4e1ac3ebe33c0b7594e30c3a4..f661f925ff2d40baf989cb46571fa4644d415df9 100644
--- a/libstdc++-v3/docs/doxygen/user.cfg.in
+++ b/libstdc++-v3/docs/doxygen/user.cfg.in
@@ -384,6 +384,7 @@ RECURSIVE              = YES
 
 EXCLUDE                = Makefile \
                          CVS \
+                         include/bits/demangle.h \
 			 stdc++.h.gch
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
@@ -433,7 +434,7 @@ IMAGE_PATH             =
 # input file. Doxygen will then use the output that the filter program writes 
 # to standard output.
 
-INPUT_FILTER           = 
+INPUT_FILTER           = "@srcdir@/docs/doxygen/filter @srcdir@/docs/doxygen/filter.sed"
 
 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
 # INPUT_FILTER) will be used to filter the input files when producing source 
@@ -459,7 +460,7 @@ INLINE_SOURCES         = NO
 # doxygen to hide any special comment blocks from generated source code 
 # fragments. Normal C and C++ comments will always remain visible.
 
-STRIP_CODE_COMMENTS    = YES
+STRIP_CODE_COMMENTS    = NO
 
 # If the REFERENCED_BY_RELATION tag is set to YES (the default) 
 # then for each documented function all documented 
diff --git a/libstdc++-v3/docs/html/documentation.html b/libstdc++-v3/docs/html/documentation.html
index 827ed22c55fbbf82f396dbba6ec94a612bcea3d8..778999d96871e7081f98f24413dedc3f040380a9 100644
--- a/libstdc++-v3/docs/html/documentation.html
+++ b/libstdc++-v3/docs/html/documentation.html
@@ -67,24 +67,25 @@
    the library classes, finding out what is in a particular include
    file, looking at inheritance diagrams, etc.
 </p>
-<p>The Source-Level documentation can be viewed online:</p>
+<p>The source-level documentation for the most recent releases can
+   be viewed online:
+</p>
 <ul>
-   <li><a href="libstdc++-html-USERS-3.1/index.html">for the 3.1 release</a>
-   </li>
-   <li><a href="libstdc++-html-USERS-3.2.1/index.html">for the 3.2.1 release</a>
-   </li>
-   <li><a href="latest-doxygen/index.html">&quot;the latest collection&quot;</a>
-       (for the snapshot or later; see the date on the first page)
-   </li>
+ <li><a href="libstdc++-html-USERS-3.3/index.html">for the 3.3 release</a></li>
+ <li><a href="latest-doxygen/index.html">&quot;the latest collection&quot;</a>
+   (for the main development tree; see the date on the first page)
+ </li>
 </ul>
 <p>This generated HTML collection, as above, is also available for download in
    the libstdc++ snapshots directory at
    <code>&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/&gt;</code>.
-   You will almost certainly need to use one of the <a
-   href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
-   the tarball.  After unpacking, simply load
-   libstdc++-html-*/index.html into a browser.  Feedback (and
-   additional documentation!) is welcome.
+   You will almost certainly need to use one of the
+   <a href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
+   the tarball.  After unpacking, simply load libstdc++-html-*/index.html
+   into a browser.
+</p>
+<p>Documentation for older releases is available for download only, not
+   online viewing.
 </p>
 <p>In addition, an initial set of man pages are also available in the
    same place as the HTML collections.  Start with C++Intro(3).