diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c3947b38d6ee6e8ffd92b1030e2a2c81d755b6b1..a2e6307aec110d0388d1828abb0563d8768db544 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,13 @@
+2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	PR c/13814
+	* config/linker-map.gnu (nan): Delete.
+	* libmath/mathconf.h (NAN, nan): Delete.
+	* linkage.m4 (nan): Don't check for it.
+	* libmath/nan.c: Delete file.
+
+	* config.h.in, configure: Regenerate.
+
 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
 
 	* include/bits/basic_string.h (push_back(_CharT)):
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index b2d030da06d7ae5f1967690c951a8de3a0a40644..7d13cdab027edd1ca939c6d013a0966c7aef9857 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -422,9 +422,6 @@
 /* Define to 1 if you have the `modfl' function. */
 #undef HAVE_MODFL
 
-/* Define to 1 if you have the `nan' function. */
-#undef HAVE_NAN
-
 /* Define to 1 if you have the <nan.h> header file. */
 #undef HAVE_NAN_H
 
diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu
index 2d46e884888e3edfe6b58d585f23725f11f0db7f..9dc4e9181b14be53ee459056eb217acdbdbc5355 100644
--- a/libstdc++-v3/config/linker-map.gnu
+++ b/libstdc++-v3/config/linker-map.gnu
@@ -203,7 +203,6 @@ GLIBCXX_3.4 {
     sqrtf;
     sqrtl;
     copysignf;
-    nan;
     __signbit;
     __signbitf;
     __signbitl;
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index dde36f5e4a0644031006f7ac47ba49a002623ea7..b4ef0e1997ce4a1e62ab5ead2f941aebe6f50eef 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -24177,8 +24177,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -44201,8 +44200,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -47064,8 +47062,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -49202,8 +49199,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -51213,8 +51209,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -53761,8 +53756,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -55728,8 +55722,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -57594,8 +57587,7 @@ _ACEOF
 fi
 
 
-
-for ac_func in nan copysignf
+for ac_func in copysignf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
diff --git a/libstdc++-v3/libmath/mathconf.h b/libstdc++-v3/libmath/mathconf.h
index 087631a56877187df373f8c25857bc84f043376c..cd8c92ad89fa32f1c6ca203893b56adc3698f82f 100644
--- a/libstdc++-v3/libmath/mathconf.h
+++ b/libstdc++-v3/libmath/mathconf.h
@@ -79,11 +79,6 @@ typedef int Int64_t __attribute ((mode (DI)));
 # include <nan.h>
 #endif
 
-#ifndef NAN
-# define NAN (nan())
-double nan (void);
-#endif
-
 #ifdef HAVE_IEEEFP_H
 # include <ieeefp.h>
 #endif
diff --git a/libstdc++-v3/libmath/nan.c b/libstdc++-v3/libmath/nan.c
deleted file mode 100644
index 1814b5dd9417171168f8875f5df8a8682eaf14f2..0000000000000000000000000000000000000000
--- a/libstdc++-v3/libmath/nan.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Return quiet nan. */
-
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
-
-   This file is part of the GNU ISO C++ Library.  This library is free
-   software; you can redistribute it and/or modify it under the
-   terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License along
-   with this library; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA.
-
-   As a special exception, you may use this file as part of a free software
-   library without restriction.  Specifically, if other files instantiate
-   templates or use macros or inline functions from this file, or you compile
-   this file and link it with other files to produce an executable, this
-   file does not by itself cause the resulting executable to be covered by
-   the GNU General Public License.  This exception does not however
-   invalidate any other reasons why the executable file might be covered by
-   the GNU General Public License.  */
-
-
-#include <stdlib.h>
-#include <string.h>
-
-double
-nan ()
-{ return strtod ("nan", NULL); }
diff --git a/libstdc++-v3/linkage.m4 b/libstdc++-v3/linkage.m4
index ae8b18f544cfbfdfd58254c569b47b3098eb6803..621492dd3049e4d5da84ccc95a55634374f226b7 100644
--- a/libstdc++-v3/linkage.m4
+++ b/libstdc++-v3/linkage.m4
@@ -510,7 +510,7 @@ AC_DEFUN(GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT, [
   dnl always pass if libm is available, and fail if it isn't.  If it is
   dnl available, we assume we'll need it later, so add it to LIBS.
   AC_CHECK_LIB(m, main)
-  AC_REPLACE_MATHFUNCS(nan copysignf)
+  AC_REPLACE_MATHFUNCS(copysignf)
 
   dnl For __signbit to signbit conversions.
   AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"])