diff --git a/dlls/mshtml/editor.c b/dlls/mshtml/editor.c
index a7943af2683..5f592848938 100644
--- a/dlls/mshtml/editor.c
+++ b/dlls/mshtml/editor.c
@@ -1223,15 +1223,14 @@ void init_editor(HTMLDocument *This)
set_ns_fontname(This, "Times New Roman");
}
-HRESULT editor_is_dirty(HTMLDocument *This)
+HRESULT browser_is_dirty(GeckoBrowser *browser)
{
cpp_bool modified;
- if(!This->doc_obj->nscontainer || !This->doc_obj->nscontainer->editor)
+ if(browser->usermode != EDITMODE || !browser->editor)
return S_FALSE;
- nsIEditor_GetDocumentModified(This->doc_obj->nscontainer->editor, &modified);
-
+ nsIEditor_GetDocumentModified(browser->editor, &modified);
return modified ? S_OK : S_FALSE;
}
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 357760738fd..9933a419afe 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -1141,7 +1141,7 @@ HRESULT editor_exec_copy(HTMLDocument*,DWORD,VARIANT*,VARIANT*) DECLSPEC_HIDDEN;
HRESULT editor_exec_cut(HTMLDocument*,DWORD,VARIANT*,VARIANT*) DECLSPEC_HIDDEN;
HRESULT editor_exec_paste(HTMLDocument*,DWORD,VARIANT*,VARIANT*) DECLSPEC_HIDDEN;
void handle_edit_load(HTMLDocument*) DECLSPEC_HIDDEN;
-HRESULT editor_is_dirty(HTMLDocument*) DECLSPEC_HIDDEN;
+HRESULT browser_is_dirty(GeckoBrowser*) DECLSPEC_HIDDEN;
void set_dirty(GeckoBrowser*,VARIANT_BOOL) DECLSPEC_HIDDEN;
extern DWORD mshtml_tls DECLSPEC_HIDDEN;
diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c
index cd52ac98cda..a7986503cf8 100644
--- a/dlls/mshtml/persist.c
+++ b/dlls/mshtml/persist.c
@@ -884,10 +884,7 @@ static HRESULT WINAPI PersistStreamInit_IsDirty(IPersistStreamInit *iface)
TRACE("(%p)\n", This);
- if(This->doc_obj->nscontainer->usermode == EDITMODE)
- return editor_is_dirty(This);
-
- return S_FALSE;
+ return browser_is_dirty(This->doc_obj->nscontainer);
}
static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, IStream *pStm)