diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c
index abca9f45e3f..fc105106141 100644
--- a/dlls/mshtml/tests/events.c
+++ b/dlls/mshtml/tests/events.c
@@ -1774,12 +1774,23 @@ static void set_client_site(IHTMLDocument2 *doc, BOOL set)
static IHTMLDocument2 *create_document(void)
{
IHTMLDocument2 *doc;
+ IHTMLDocument5 *doc5;
HRESULT hres;
hres = CoCreateInstance(&CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
&IID_IHTMLDocument2, (void**)&doc);
ok(hres == S_OK, "CoCreateInstance failed: %08x\n", hres);
+ if (FAILED(hres))
+ return NULL;
+ hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument5, (void**)&doc5);
+ if(FAILED(hres)) {
+ win_skip("Could not get IHTMLDocument5 interface, probably too old IE\n");
+ IHTMLDocument2_Release(doc);
+ return NULL;
+ }
+
+ IHTMLDocument5_Release(doc5);
return doc;
}
@@ -1796,6 +1807,8 @@ static void run_test(const char *str, testfunc_t test)
xy_todo = FALSE;
doc = create_document();
+ if (!doc)
+ return;
set_client_site(doc, TRUE);
doc_load_string(doc, str);
do_advise((IUnknown*)doc, &IID_IPropertyNotifySink, (IUnknown*)&PropertyNotifySink);