diff --git "a/dll/win32/shell32/shlexec.cpp" "b/dll/win32/shell32/shlexec.cpp" index 4f484d89998..630e1c67920 100644 --- "a/dll/win32/shell32/shlexec.cpp" +++ "b/dll/win32/shell32/shlexec.cpp" @@ -1098,6 +1098,13 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpVerb, lstrcpyW(lpResult, xlpFile); /* The file was found in lpPath or one of the directories in the system-wide search path */ } + /* We need to see if lpFile begins with dot follwed by a backslash and + * if so, we need to delete these extra characters. See CORE-20508 */ + else if (lpFile[0] == '.' && lpFile[1] == '\\') + { + lstrcpyW(xlpFile, &lpFile[2]); + lpFile = xlpFile; + } else { xlpFile[0] = '\0';