diff --git a/win32/code_page.c b/win32/code_page.c
index 1ec9953..43dc261 100644
--- a/win32/code_page.c
+++ b/win32/code_page.c
@@ -8,6 +8,7 @@
 #include "windows.h"
 #include "winerror.h"
 #include "kernel32.h"
+#include "winnls.h"
 #include "stddebug.h"
 #include "debug.h"
 
@@ -47,3 +48,41 @@
 {
     return (srclen==-1) ? strlen(src) * 2: srclen*2; 
 }
+
+int WideCharToMultiByte(UINT page, DWORD flags, WCHAR *src, int srclen,
+						char *dst, int dstlen, char* defchar, BOOL *used)
+{
+	int count = 0;
+	int dont_copy= (dstlen==0);
+	if(page!=GetACP() && page!=CP_OEMCP && page!=CP_ACP)
+		fprintf(stdnimp,"Conversion in CP %d not supported\n",page);
+	if(flags)
+		fprintf(stdnimp,"WideCharToMultiByte flags %lx not supported\n",flags);
+	if(used)
+		*used=0;
+	while(srclen && (dont_copy || dstlen))
+	{
+		if(!dont_copy){
+			if(*src<256)
+				*dst = *src;
+			else
+			{
+				/* FIXME: Is this correct ?*/
+				if(flags & WC_DEFAULTCHAR){
+					*dst = defchar ? *defchar : '?';
+					if(used)*used=1;
+				}
+			}
+			dstlen--;
+			dst++;
+		}
+		count++;
+		if(!*src)
+			break;
+		if(srclen!=-1)srclen--;
+		src++;
+	}
+	return count;
+}
+
+		
