diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index c37c4759a16..c588f05088b 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -309,10 +309,20 @@ static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *ifac
TRACE("(%p)->(%08lx %s)\n", This, hresult, debugstr_w(szError));
- if(This->nslistener)
+ if(This->nslistener) {
nsIStreamListener_OnStopRequest(This->nslistener, (nsIRequest*)NSCHANNEL(This->nschannel),
This->nscontext, NS_OK);
+ if(This->nschannel->load_group) {
+ nsresult nsres;
+
+ nsres = nsILoadGroup_RemoveRequest(This->nschannel->load_group,
+ (nsIRequest*)NSCHANNEL(This->nschannel), NULL, NS_OK);
+ if(NS_FAILED(nsres))
+ ERR("RemoveRequest failed: %08lx\n", nsres);
+ }
+ }
+
return S_OK;
}
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 0c26fd4c4dd..d643e354a09 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -602,8 +602,17 @@ static nsresult NSAPI nsChannel_AsyncOpen(nsIHttpChannel *iface, nsIStreamListen
nsIWebBrowserChrome_Release(NSWBCHROME(container));
- if(!This->channel)
+ if(!This->channel) {
+ if(This->load_group) {
+ nsres = nsILoadGroup_AddRequest(This->load_group,
+ (nsIRequest*)NSCHANNEL(This), NULL);
+
+ if(NS_FAILED(nsres))
+ ERR("AddRequest failed:%08lx\n", nsres);
+ }
+
return WINE_NS_LOAD_FROM_MONIKER;
+ }
}else {
BOOL cont = before_async_open(This, container);
nsIWebBrowserChrome_Release(NSWBCHROME(container));
@@ -673,6 +682,14 @@ static nsresult NSAPI nsChannel_AsyncOpen(nsIHttpChannel *iface, nsIStreamListen
bscallback->nscontext = aContext;
}
+ if(This->load_group) {
+ nsres = nsILoadGroup_AddRequest(This->load_group,
+ (nsIRequest*)NSCHANNEL(This), NULL);
+
+ if(NS_FAILED(nsres))
+ ERR("AddRequest failed:%08lx\n", nsres);
+ }
+
start_binding(bscallback);
IBindStatusCallback_Release(STATUSCLB(bscallback));