diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 18bd05f78d5..c8d68c48b0d 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -116,6 +116,9 @@ static HRESULT WINAPI HTMLDocument_QueryInterface(IHTMLDocument2 *iface, REFIID
}else if(IsEqualGUID(&CLSID_CMarkup, riid)) {
FIXME("(%p)->(CLSID_CMarkup %p)\n", This, ppvObject);
return E_NOINTERFACE;
+ }else if(IsEqualGUID(&IID_IRunnableObject, riid)) {
+ TRACE("(%p)->(IID_IRunnableObject %p) returning NULL\n", This, ppvObject);
+ return E_NOINTERFACE;
}
if(*ppvObject) {
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index c6fb288469c..19151a073d7 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -2535,6 +2535,16 @@ static void test_Navigate(IUnknown *unk)
IHlinkTarget_Release(hlink);
}
+static void test_QueryInterface(IUnknown *unk)
+{
+ IRunnableObject *runnable = (IRunnableObject*)0xdeadbeef;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IRunnableObject, (void**)&runnable);
+ ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
+ ok(runnable == NULL, "runnable=%p, ezpected NULL\n", runnable);
+}
+
static void init_test(enum load_state_t ls) {
hwnd = last_hwnd = NULL;
set_clientsite = FALSE;
@@ -2556,6 +2566,7 @@ static void test_HTMLDocument(enum load_state_t ls)
if(FAILED(hres))
return;
+ test_QueryInterface(unk);
test_ConnectionPointContainer(unk);
test_Persist(unk);
if(load_state == LD_NO)