diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c index 468c401fce0..8c4b8cf3b03 100644 --- a/dlls/mshtml/olecmd.c +++ b/dlls/mshtml/olecmd.c @@ -523,6 +523,9 @@ static HRESULT exec_editmode(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, if(in || out) FIXME("unsupported args\n"); + if(This->usermode == EDITMODE) + return S_OK; + This->usermode = EDITMODE; if(This->frame) diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c index 2627a8570c2..083181afd31 100644 --- a/dlls/mshtml/tests/htmldoc.c +++ b/dlls/mshtml/tests/htmldoc.c @@ -2571,6 +2571,10 @@ static void test_exec_editmode(IUnknown *unk) IOleCommandTarget_Release(cmdtrg); editmode = TRUE; + + hres = IOleCommandTarget_Exec(cmdtrg, &CGID_MSHTML, IDM_EDITMODE, + OLECMDEXECOPT_DODEFAULT, NULL, NULL); + ok(hres == S_OK, "Exec failed: %08x\n", hres); } static HWND create_container_window(void)