--- file.c	2010-07-14 12:21:17.288000000 +0300
+++ file.c	2010-07-14 12:20:29.367000000 +0300
@@ -97,8 +97,23 @@
 #ifdef OPEN_NEEDS_ARG3
 #  define open_readonly(p,f) open((p),(f),(0))
 #else
+#if defined(WIN32)
+static int open_readonly(const char *filename, int oflag)
+{
+	wchar_t wideFilename[MAX_PATH];
+
+	if (!MultiByteToWideChar(CP_UTF8, 0, filename, -1, wideFilename, MAX_PATH))
+	{
+		_set_errno(ENOENT);
+		return -1;
+	}
+
+	return _wopen(wideFilename, oflag);
+}
+#else
 #  define open_readonly(p,f) open((p),(f))
 #endif
+#endif
 
 /*
  * Forward declarations.

