diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c
index dd2c044d76..6ad26eebbf 100644
--- a/dlls/mshtml/htmlbody.c
+++ b/dlls/mshtml/htmlbody.c
@@ -369,15 +369,39 @@ static HRESULT WINAPI HTMLBodyElement_get_vLink(IHTMLBodyElement *iface, VARIANT
static HRESULT WINAPI HTMLBodyElement_put_aLink(IHTMLBodyElement *iface, VARIANT v)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+ nsAString alink_str;
+ nsresult nsres;
+
+ TRACE("(%p)->(v%d)\n", This, V_VT(&v));
+
+ if(!variant_to_nscolor(&v, &alink_str))
+ return S_OK;
+
+ nsres = nsIDOMHTMLBodyElement_SetALink(This->nsbody, &alink_str);
+ nsAString_Finish(&alink_str);
+ if(NS_FAILED(nsres))
+ ERR("SetALink failed: %08x\n", nsres);
+
+ return S_OK;
}
static HRESULT WINAPI HTMLBodyElement_get_aLink(IHTMLBodyElement *iface, VARIANT *p)
{
HTMLBodyElement *This = HTMLBODY_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString alink_str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&alink_str, NULL);
+ nsres = nsIDOMHTMLBodyElement_GetALink(This->nsbody, &alink_str);
+ if(NS_FAILED(nsres))
+ ERR("GetALink failed: %08x\n", nsres);
+
+ nscolor_to_variant(&alink_str, p);
+ nsAString_Finish(&alink_str);
+
+ return S_OK;
}
static HRESULT WINAPI HTMLBodyElement_put_onload(IHTMLBodyElement *iface, VARIANT v)