diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 47db28b..8f3b4b8 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -472,7 +472,7 @@
   misc/gettimeofday.c    misc/imaxabs.c             misc/imaxdiv.c          misc/isblank.c               misc/iswblank.c        \
   misc/mempcpy.c         misc/mingw-aligned-malloc.c \
   misc/mingw_matherr.c   misc/mingw_mbwc_convert.c  misc/mingw_usleep.c     misc/mingw_wcstod.c          misc/mingw_wcstof.c    \
-  misc/mingw_wcstold.c   misc/mkstemp.c             misc/seterrno.c         misc/sleep.c          \
+  misc/mkstemp.c             misc/seterrno.c         misc/sleep.c          \
   misc/strnlen.c         misc/strsafe.c         \
   misc/strtoimax.c       misc/strtold.c             misc/strtoumax.c        misc/tdelete.c               misc/tfind.c           \
   misc/tsearch.c         misc/twalk.c           \
diff --git a/mingw-w64-crt/misc/mingw_wcstold.c b/mingw-w64-crt/misc/mingw_wcstold.c
deleted file mode 100644
index ce1ad5e..0000000
--- a/mingw-w64-crt/misc/mingw_wcstold.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <windows.h>
-#include <stdio.h>
-
-long double __cdecl
-__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr);
-
-long double __cdecl
-__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr)
-{
-  long double r;
-  char *n, *ep = NULL;
-  size_t l, l2;
-
-  l = WideCharToMultiByte(CP_UTF8, 0, _Str, -1, NULL, 0, NULL, NULL);
-  n = alloca (l + 1);
-  if (l != 0) WideCharToMultiByte (CP_UTF8, 0, _Str, -1, n, l, NULL, NULL);
-  n[l] = 0;
-  r = __mingw_strtold (n, &ep);  
-  if (ep != NULL)
-  {
-    *ep = 0;
-    l2 = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, n, -1, NULL, 0);
-    if (l2 > 0)
-      l2 -= 1; /* Remove zero terminator from length.  */
-    if (_EndPtr)
-      *_EndPtr = (wchar_t *) &_Str[l2];
-  }
-  else if (_EndPtr)
-   *_EndPtr = NULL;
-  return r;
-}
-
diff --git a/mingw-w64-crt/misc/wcstold.c b/mingw-w64-crt/misc/wcstold.c
index 0137b20..48e589d 100644
--- a/mingw-w64-crt/misc/wcstold.c
+++ b/mingw-w64-crt/misc/wcstold.c
@@ -72,3 +72,7 @@
 
   return ret;
 }
+
+long double
+__mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse)
+  __attribute__((alias("wcstold")));
