diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8673f258a6502bef6e73dda9689cefcdbbf6604d..d4e1094b2808aab621fdb105bc88d92deec7d55c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2004-05-25  Benjamin Kosnik  <bkoz@redhat.com>
+
+	PR libstdc++/15489
+	* scripts/create_testsuite_files: Revert xtype change, add non-GNU
+	bits to do the same thing.
+
 2004-05-24  Paolo Carlini  <pcarlini@suse.de>
 
 	* include/bits/istream.tcc (ignore): Correctly deal with
diff --git a/libstdc++-v3/scripts/create_testsuite_files b/libstdc++-v3/scripts/create_testsuite_files
index f97b6e69b233626ef8635efdf830a2a70b64627e..8e357898f7f0d763ab07602653b17756706fa805 100755
--- a/libstdc++-v3/scripts/create_testsuite_files
+++ b/libstdc++-v3/scripts/create_testsuite_files
@@ -30,12 +30,18 @@ tests_file_perf="$outdir/testsuite_files_performance"
 
 cd $srcdir
 # This is the ugly version of "everything but the current directory".  It's
-# what has to happen when find(1) doesn't support -mindepth.
+# what has to happen when find(1) doesn't support -mindepth, or -xtype.
 dlist=`echo [0-9][0-9]*`
 for d in [a-z]*; do
   test -d $d && dlist="$dlist $d"
 done
-find $dlist -xtype f -name "*.cc" | sort > $tmp.1
+find $dlist -type f -name "*.cc" | sort > $tmp.1
+if test ! -s "$tmp.1"; then
+  find $dlist -type l -name "*.cc" | sort > $tmp.1
+fi
+if test ! -s "$tmp.1"; then
+  exit 1
+fi
 
 # If the library is not configured to support wchar_t, don't run those tests.
 if test -f "$outdir/testsuite_wchar_t"; then