diff --git a/Modules/getpath.c b/Modules/getpath.c
index 9e5934d..2275c84 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -231,12 +231,12 @@
 /* copy_absolute requires that path be allocated at least
    MAXPATHLEN + 1 bytes and that p be no more than MAXPATHLEN bytes. */
 static void
-copy_absolute(wchar_t *path, wchar_t *p)
+copy_absolute(wchar_t *path, wchar_t *p, size_t pathlen)
 {
     if (p[0] == SEP)
         wcscpy(path, p);
     else {
-        if (!_Py_wgetcwd(path, MAXPATHLEN)) {
+        if (!_Py_wgetcwd(path, pathlen)) {
             /* unable to get the current directory */
             wcscpy(path, p);
             return;
@@ -251,11 +251,11 @@
 static void
 absolutize(wchar_t *path)
 {
-    wchar_t buffer[MAXPATHLEN + 1];
+    wchar_t buffer[MAXPATHLEN+1];
 
     if (path[0] == SEP)
         return;
-    copy_absolute(buffer, path);
+    copy_absolute(buffer, path, MAXPATHLEN+1);
     wcscpy(path, buffer);
 }
 
@@ -295,7 +295,7 @@
     }
 
     /* Search from argv0_path, until root is found */
-    copy_absolute(prefix, argv0_path);
+    copy_absolute(prefix, argv0_path, MAXPATHLEN+1);
     do {
         n = wcslen(prefix);
         joinpath(prefix, lib_python);
@@ -372,7 +372,7 @@
     }
 
     /* Search from argv0_path, until root is found */
-    copy_absolute(exec_prefix, argv0_path);
+    copy_absolute(exec_prefix, argv0_path, MAXPATHLEN+1);
     do {
         n = wcslen(exec_prefix);
         joinpath(exec_prefix, lib_python);
diff --git a/Python/fileutils.c b/Python/fileutils.c
index 9423cb0..564e2c0 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -364,7 +364,8 @@
 }
 #endif
 
-/* Get the current directory. Decode the path from the locale encoding. */
+/* Get the current directory. size is the buffer size in wide characters
+   including the null character. Decode the path from the locale encoding. */
 
 wchar_t*
 _Py_wgetcwd(wchar_t *buf, size_t size)
@@ -373,12 +374,19 @@
     return _wgetcwd(buf, size);
 #else
     char fname[PATH_MAX];
+    wchar_t *wname;
+
     if (getcwd(fname, PATH_MAX) == NULL)
         return NULL;
-    if (mbstowcs(buf, fname, size) >= size) {
-        errno = ERANGE;
+    wname = _Py_char2wchar(fname);
+    if (wname == NULL)
+        return NULL;
+    if (size <= wcslen(wname)) {
+        PyMem_Free(wname);
         return NULL;
     }
+    wcsncpy(buf, wname, size);
+    PyMem_Free(wname);
     return buf;
 #endif
 }
