diff --git a/dlls/mshtml/binding.h b/dlls/mshtml/binding.h
index f5b85e94b3..71c477ab13 100644
--- a/dlls/mshtml/binding.h
+++ b/dlls/mshtml/binding.h
@@ -82,6 +82,7 @@ struct BSCallback {
request_data_t request_data;
ULONG readed;
DWORD bindf;
+ DWORD bindinfo_options;
BOOL bindinfo_ready;
binding_bom_t bom;
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index d036364484..9dec64dbdc 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -390,7 +390,7 @@ static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
pbindinfo->cbstgmedData = This->request_data.post_data_len;
pbindinfo->dwCodePage = CP_UTF8;
- pbindinfo->dwOptions = 0x80000;
+ pbindinfo->dwOptions = This->bindinfo_options;
if(This->request_data.post_data_len) {
pbindinfo->dwBindVerb = BINDVERB_POST;
@@ -674,6 +674,7 @@ void init_bscallback(BSCallback *This, const BSCallbackVtbl *vtbl, IMoniker *mon
This->vtbl = vtbl;
This->ref = 1;
This->bindf = bindf;
+ This->bindinfo_options = BINDINFO_OPTIONS_USE_IE_ENCODING;
This->bom = BOM_NONE;
list_init(&This->entry);
@@ -1312,8 +1313,15 @@ static HRESULT nsChannelBSC_init_bindinfo(BSCallback *bsc)
{
nsChannelBSC *This = nsChannelBSC_from_BSCallback(bsc);
nsChannel *nschannel = This->nschannel;
+ HTMLDocumentObj *doc_obj;
HRESULT hres;
+ if(This->is_doc_channel && This->bsc.window && This->bsc.window->base.outer_window
+ && (doc_obj = This->bsc.window->base.outer_window->doc_obj)) {
+ if(doc_obj->hostinfo.dwFlags & DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION)
+ This->bsc.bindinfo_options |= BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS;
+ }
+
if(nschannel && nschannel->post_data_stream) {
hres = read_post_data_stream(nschannel->post_data_stream, nschannel->post_data_contains_headers,
&nschannel->request_headers, &This->bsc.request_data);