diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 3a1644c3d6e..727eaef15fe 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -1142,13 +1142,17 @@ HRESULT channelbsc_load_stream(nsChannelBSC *bscallback, IStream *stream)
{
HRESULT hres;
- const char text_html[] = "text/html";
+ if(!bscallback->nschannel) {
+ ERR("NULL nschannel\n");
+ return E_FAIL;
+ }
+
+ bscallback->nschannel->content_type = heap_strdupA("text/html");
+ if(!bscallback->nschannel->content_type)
+ return E_OUTOFMEMORY;
add_nsrequest(bscallback);
- if(bscallback->nschannel)
- bscallback->nschannel->content_type = heap_strdupA(text_html);
-
hres = read_stream_data(bscallback, stream);
IBindStatusCallback_OnStopBinding(STATUSCLB(&bscallback->bsc), hres, ERROR_SUCCESS);