diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c index 99980c7c31b..6d6cbb623be 100644 --- a/dlls/shdocvw/navigate.c +++ b/dlls/shdocvw/navigate.c @@ -760,7 +760,23 @@ HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags, This->ready_state = READYSTATE_LOADING; if(This->doc_navigate) { - hres = async_doc_navigate(This, url, headers, post_data, post_data_len, TRUE); + WCHAR new_url[INTERNET_MAX_URL_LENGTH]; + + if(PathIsURLW(url)) { + new_url[0] = 0; + }else { + DWORD size; + + size = sizeof(new_url)/sizeof(WCHAR); + hres = UrlApplySchemeW(url, new_url, &size, URL_APPLY_GUESSSCHEME); + if(FAILED(hres)) { + WARN("UrlApplyScheme failed: %08x\n", hres); + new_url[0] = 0; + } + } + + hres = async_doc_navigate(This, *new_url ? new_url : url, headers, post_data, + post_data_len, TRUE); }else { task_navigate_bsc_t *task;