diff --git a/dlls/api-ms-win-crt-string-l1-1-0/api-ms-win-crt-string-l1-1-0.spec b/dlls/api-ms-win-crt-string-l1-1-0/api-ms-win-crt-string-l1-1-0.spec
index 7693755a717981f727113c7521e81d7c61b4b398..6b01b2b75132e82e8c90bf7b627790b6708a978c 100644
--- a/dlls/api-ms-win-crt-string-l1-1-0/api-ms-win-crt-string-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-string-l1-1-0/api-ms-win-crt-string-l1-1-0.spec
@@ -19,7 +19,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) ucrtbase._isspace_l
 @ cdecl _isupper_l(long ptr) ucrtbase._isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) ucrtbase._iswalnum_l
 @ cdecl _iswalpha_l(long ptr) ucrtbase._iswalpha_l
 @ cdecl _iswblank_l(long ptr) ucrtbase._iswblank_l
 @ stub _iswcntrl_l
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index e38672efbdfabac0bcdbaafeb3f18f0b3999bf71..5c0506c9fcd8da2bfac3798ecf7e25462e05302f 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1016,7 +1016,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 @ stub _iswcntrl_l
 @ stub _iswcsym_l
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index ed930d78170ec2f7b3d8740de11e48fb776a65db..757ed7c5431fd392b42bf4eb0c73dd3df1683337 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1362,7 +1362,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 @ stub _iswcntrl_l
 @ stub _iswcsym_l
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 1f3d22d98398850182f026cd7da285b9acbc32f2..52a315574ff48db81b2f3c0b62d2e2288788162f 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1367,7 +1367,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 @ cdecl _iswblank_l(long ptr) MSVCRT__iswblank_l
 @ stub _iswcntrl_l
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index aa4b2b874b61fdcf2ba2ed9d6e45c58303d4f3a1..db607e031d691f325498f60a9701c2d1e79ffa10 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -1232,7 +1232,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) msvcr120._isspace_l
 @ cdecl _isupper_l(long ptr) msvcr120._isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) msvcr120._iswalnum_l
 @ cdecl _iswalpha_l(long ptr) msvcr120._iswalpha_l
 @ cdecl _iswblank_l(long ptr) msvcr120._iswblank_l
 @ stub _iswcntrl_l
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 8c69215cdb71bc31b83ee1eb03baaf8f817ed8c1..baf89f5947aa1aedb74d3712db2beec0002362f5 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -688,7 +688,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 @ stub _iswcntrl_l
 @ stub _iswcsym_l
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 842cb5f32e943d1fea2ac7fc46fb3f59148c5936..79dab2e19827886b963ba0cfc15b619c19b11ab0 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -666,7 +666,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 @ stub _iswcntrl_l
 @ stub _iswcsym_l
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index fa234fb99dc061e668f85cc2f266c52b10d73913..dbff9642ccb16cdfb70d028b5c30fd32ea3a4c16 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -633,7 +633,7 @@
 @ cdecl _isprint_l(long ptr) MSVCRT__isprint_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-# stub _iswalnum_l(long ptr)
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 # stub _iswcntrl_l(long ptr)
 @ cdecl _iswctype_l(long long ptr) MSVCRT__iswctype_l
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index c4e27e1439acfa4a08daa481d3244045715f6692..72a2b71b0c50372457d9a92a3844d1c14d56abf2 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1806,6 +1806,14 @@ INT CDECL MSVCRT_iswalnum( MSVCRT_wchar_t wc )
     return isalnumW( wc );
 }
 
+/*********************************************************************
+ *		_iswalnum_l (MSVCRT.@)
+ */
+int CDECL MSVCRT__iswalnum_l( MSVCRT_wchar_t wc, MSVCRT__locale_t locale )
+{
+    return isalnumW( wc );
+}
+
 /*********************************************************************
  *		iswalpha (MSVCRT.@)
  */
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index adb3198305389ebba9a80bc3d7770b0f1cc7de2f..32a646acf1cc72579b7f341649b7e382a541796e 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -506,7 +506,7 @@
 @ stub _ispunct_l
 @ cdecl _isspace_l(long ptr) MSVCRT__isspace_l
 @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
-@ stub _iswalnum_l
+@ cdecl _iswalnum_l(long ptr) MSVCRT__iswalnum_l
 @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
 @ cdecl _iswblank_l(long ptr) MSVCRT__iswblank_l
 @ stub _iswcntrl_l