diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index e17d48d4760..7cfc10eec23 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -952,6 +952,21 @@ static HRESULT read_stream_data(nsChannelBSC *This, IStream *stream)
&& (BYTE)This->nsstream->buf[1] == 0xfe)
This->nschannel->charset = heap_strdupA(UTF16_STR);
+ if(!This->nschannel->content_type) {
+ WCHAR *mime;
+
+ hres = FindMimeFromData(NULL, NULL, This->nsstream->buf, This->nsstream->buf_size, NULL, 0, &mime, 0);
+ if(FAILED(hres))
+ return hres;
+
+ TRACE("Found MIME %s\n", debugstr_w(mime));
+
+ This->nschannel->content_type = heap_strdupWtoA(mime);
+ CoTaskMemFree(mime);
+ if(!This->nschannel->content_type)
+ return E_OUTOFMEMORY;
+ }
+
on_start_nsrequest(This);
if(This->window)