diff --git a/reactos/lib/crt/crt.xml b/reactos/lib/crt/crt.xml
index c673236464a..cb231600e04 100644
--- a/reactos/lib/crt/crt.xml
+++ b/reactos/lib/crt/crt.xml
@@ -24,6 +24,7 @@
ctype.c
+ isalnum.c
isascii.c
iscntrl.c
isgraph.c
@@ -51,7 +52,9 @@
abnorter.c
exhand2.c
matherr.c
+ seh.s
unwind.c
+ xcptfil.c
chgsign.c
@@ -211,6 +214,7 @@
thread.c
threadid.c
threadx.c
+ wprocess.c
lfind.c
@@ -246,6 +250,7 @@
fputc.c
fputchar.c
fputs.c
+ fputws.c
fread.c
freopen.c
fseek.c
@@ -253,6 +258,7 @@
fsopen.c
ftell.c
fwalk.c
+ fwprintf.c
fwrite.c
getc.c
getchar.c
@@ -265,6 +271,7 @@
putchar.c
puts.c
putw.c
+ putwchar.c
remove.c
rename.c
rewind.c
@@ -278,12 +285,20 @@
tmpfile.c
tmpnam.c
ungetc.c
+ ungetwc.c
vfprintf.c
vfwprint.c
vprintf.c
vsprintf.c
vswprintf.c
+ vwprintf.c
wfdopen.c
+ wfopen.c
+ wfreopen.c
+ wfsopen.c
+ wpopen.c
+ wprintf.c
+ wremove.c
wrename.c
wtempnam.c
wtmpnam.c
diff --git a/reactos/lib/crt/stdio/vsprintf.c b/reactos/lib/crt/stdio/vsprintf.c
index d51dcf99af7..ca09681acd9 100644
--- a/reactos/lib/crt/stdio/vsprintf.c
+++ b/reactos/lib/crt/stdio/vsprintf.c
@@ -6,7 +6,7 @@
#include
int
-crt_vsprintf(_TCHAR *str, const _TCHAR *fmt, va_list ap)
+_vstprintf(_TCHAR *str, const _TCHAR *fmt, va_list ap)
{
FILE f = {0};
int len;
@@ -22,7 +22,7 @@ crt_vsprintf(_TCHAR *str, const _TCHAR *fmt, va_list ap)
int
-crt__vsnprintf(_TCHAR *str, size_t maxlen, const _TCHAR *fmt, va_list ap)
+_vsntprintf(_TCHAR *str, size_t maxlen, const _TCHAR *fmt, va_list ap)
{
FILE f = {0};
int len;
diff --git a/reactos/lib/crt/stdio/vswprintf.c b/reactos/lib/crt/stdio/vswprintf.c
index 9b3cbd89af4..646e937fee7 100644
--- a/reactos/lib/crt/stdio/vswprintf.c
+++ b/reactos/lib/crt/stdio/vswprintf.c
@@ -1,40 +1,4 @@
-/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
#define UNICODE
#define _UNICODE
-#include
-#include
-#include
-#include
-#include
-int
-crt__vswprintf(_TCHAR *str, const _TCHAR *fmt, va_list ap)
-{
- FILE f = {0};
- int len;
-
- f._flag = _IOWRT|_IOSTRG|_IOBINARY;
- f._ptr = (char*)str;
- f._cnt = INT_MAX;
- f._file = -1;
- len = _vftprintf(&f,fmt, ap);
- *(_TCHAR*)f._ptr = 0;
- return len;
-}
-
-
-int
-crt__vsnwprintf(_TCHAR *str, size_t maxlen, const _TCHAR *fmt, va_list ap)
-{
- FILE f = {0};
- int len;
-
- f._flag = _IOWRT|_IOSTRG|_IOBINARY;
- f._ptr = (char*)str;
- f._cnt = maxlen;
- f._file = -1;
- len = _vftprintf(&f,fmt, ap);
- // what if the buffer is full ??
- *(_TCHAR *)f._ptr = 0;
- return len;
-}
+#include "vsprintf.c"
diff --git a/reactos/lib/crtdll/crtdll.def b/reactos/lib/crtdll/crtdll.def
index 463ef323356..d463c84eddb 100644
--- a/reactos/lib/crtdll/crtdll.def
+++ b/reactos/lib/crtdll/crtdll.def
@@ -359,8 +359,8 @@ _ungetch
_unlink
_unloaddll
_utime
-_vsnprintf=crt__vsnprintf
-_vsnwprintf=crt__vsnwprintf
+_vsnprintf
+_vsnwprintf
_wcsdup
_wcsicmp
_wcsicoll
@@ -541,7 +541,7 @@ ungetwc
vfprintf
vfwprintf
vprintf
-vsprintf=crt_vsprintf
+vsprintf
vswprintf
vwprintf
wcscat
diff --git a/reactos/lib/msvcrt/msvcrt.def b/reactos/lib/msvcrt/msvcrt.def
index ce37a026a29..4aa531e960b 100644
--- a/reactos/lib/msvcrt/msvcrt.def
+++ b/reactos/lib/msvcrt/msvcrt.def
@@ -555,8 +555,8 @@ _utime
_utime64=stub
_vscprintf=stub
_vscwprintf=stub
-_vsnprintf=crt__vsnprintf
-_vsnwprintf=crt__vsnwprintf
+_vsnprintf
+_vsnwprintf
_waccess
_wasctime
_wchdir
@@ -815,7 +815,7 @@ ungetwc
vfprintf
vfwprintf
vprintf
-vsprintf=crt_vsprintf
+vsprintf
vswprintf
vwprintf
wcscat
diff --git a/reactos/lib/msvcrt/msvcrt.xml b/reactos/lib/msvcrt/msvcrt.xml
index 3cf6e921209..e51da4a111c 100644
--- a/reactos/lib/msvcrt/msvcrt.xml
+++ b/reactos/lib/msvcrt/msvcrt.xml
@@ -1,6 +1,7 @@
-nostartfiles
--enable-stdcall-fixup
+ -nostdlib
-lgcc
.
@@ -14,10 +15,10 @@
crt
- wine
string
kernel32
ntdll
+ wine
precomp.h
dllmain.c
msvcrt.rc