diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index ec560291dd..a7b2969e98 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -646,10 +646,24 @@ static HRESULT WINAPI HTMLEventObj_get_x(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_get_y(IHTMLEventObj *iface, LONG *p)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
+ LONG y = 0;
- FIXME("(%p)->(%p)\n", This, p);
+ TRACE("(%p)->(%p)\n", This, p);
- *p = -1;
+ if(This->nsevent) {
+ nsIDOMUIEvent *ui_event;
+ nsresult nsres;
+
+ nsres = nsIDOMEvent_QueryInterface(This->nsevent, &IID_nsIDOMUIEvent, (void**)&ui_event);
+ if(NS_SUCCEEDED(nsres)) {
+ /* NOTE: pageY is not exactly right here. */
+ nsres = nsIDOMUIEvent_GetPageY(ui_event, &y);
+ assert(nsres == NS_OK);
+ nsIDOMUIEvent_Release(ui_event);
+ }
+ }
+
+ *p = y;
return S_OK;
}