diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 33343249b29..778b6929763 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -2125,8 +2125,18 @@ static HRESULT WINAPI EventTarget_removeEventListener(IEventTarget *iface, BSTR
IDispatch *listener, VARIANT_BOOL capture)
{
EventTarget *This = impl_from_IEventTarget(iface);
- FIXME("(%p)->(%s %p %x)\n", This, debugstr_w(type), listener, capture);
- return E_NOTIMPL;
+ eventid_t eid;
+
+ TRACE("(%p)->(%s %p %x)\n", This, debugstr_w(type), listener, capture);
+
+ eid = str_to_eid(type);
+ if(eid == EVENTID_LAST) {
+ FIXME("Unsupported on event %s\n", debugstr_w(type));
+ return E_NOTIMPL;
+ }
+
+ remove_event_listener(This, eid, capture ? LISTENER_TYPE_CAPTURE : LISTENER_TYPE_BUBBLE, listener);
+ return S_OK;
}
static HRESULT WINAPI EventTarget_dispatchEvent(IEventTarget *iface, IDOMEvent *event, VARIANT_BOOL *result)