diff -r 19f36a2a34ec Lib/ntpath.py --- a/Lib/ntpath.py Mon Mar 23 01:09:35 2015 +0200 +++ b/Lib/ntpath.py Mon Mar 23 09:27:53 2015 +0200 @@ -386,7 +386,7 @@ def expandvars(path): index = path.index(c) res += c + path[:index + 1] except ValueError: - res += path + res += c + path index = pathlen - 1 elif c == percent: # variable or '%' if path[index + 1:index + 2] == percent: diff -r 19f36a2a34ec Lib/test/test_ntpath.py --- a/Lib/test/test_ntpath.py Mon Mar 23 01:09:35 2015 +0200 +++ b/Lib/test/test_ntpath.py Mon Mar 23 09:27:53 2015 +0200 @@ -237,6 +237,7 @@ class TestNtpath(unittest.TestCase): tester('ntpath.expandvars("%?bar%")', "%?bar%") tester('ntpath.expandvars("%foo%%bar")', "bar%bar") tester('ntpath.expandvars("\'%foo%\'%bar")', "\'%foo%\'%bar") + tester('ntpath.expandvars("bar\'%foo%")', "bar\'%foo%") @unittest.skipUnless(support.FS_NONASCII, 'need support.FS_NONASCII') def test_expandvars_nonascii(self):