diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 95b0100fd06..8144092a9f7 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -1763,7 +1763,6 @@ static void destroy_htmldoc(HTMLDocument *This)
if(This->event_target)
release_event_target(This->event_target);
- heap_free(This->mime);
release_nodes(This);
release_dispex(&This->dispex);
@@ -1894,6 +1893,7 @@ static ULONG HTMLDocumentObj_Release(HTMLDocument *base)
if(This->hwnd)
DestroyWindow(This->hwnd);
+ heap_free(This->mime);
destroy_htmldoc(&This->basedoc);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index c8d1c61307a..d5fcd8d29f1 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -284,8 +284,6 @@ struct HTMLDocument {
HTMLWindow *window;
nsIDOMHTMLDocument *nsdoc;
- LPWSTR mime;
-
DWORD update;
event_target_t *event_target;
@@ -350,6 +348,7 @@ struct HTMLDocumentObj {
USERMODE usermode;
READYSTATE readystate;
+ LPWSTR mime;
/* FIXME: probably should be in document node object */
nsChannelBSC *bscallback;
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index ee3df0d7053..d7fe4a9e1d4 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -708,9 +708,9 @@ static nsresult async_open_doc_uri(nsChannel *This, NSContainer *container,
if(container->bscallback) {
channelbsc_set_channel(container->bscallback, This, listener, context);
- if(container->doc && container->doc->basedoc.mime) {
+ if(container->doc && container->doc->mime) {
heap_free(This->content_type);
- This->content_type = heap_strdupWtoA(container->doc->basedoc.mime);
+ This->content_type = heap_strdupWtoA(container->doc->mime);
}
return NS_OK;
diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c
index 0ce29c4d5b5..f89cde8afcd 100644
--- a/dlls/mshtml/persist.c
+++ b/dlls/mshtml/persist.c
@@ -370,8 +370,8 @@ static HRESULT WINAPI MonikerProp_PutProperty(IMonikerProp *iface, MONIKERPROPER
switch(mkp) {
case MIMETYPEPROP:
- heap_free(This->mime);
- This->mime = heap_strdupW(val);
+ heap_free(This->doc_obj->mime);
+ This->doc_obj->mime = heap_strdupW(val);
break;
case CLASSIDPROP: