diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index ca269fc7da9..f684f2a34af 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -1497,14 +1497,27 @@ static nsresult NSAPI nsURI_SetPath(nsIWineURI *iface, const nsACString *aPath)
static nsresult NSAPI nsURI_Equals(nsIWineURI *iface, nsIURI *other, PRBool *_retval)
{
nsURI *This = NSURI_THIS(iface);
+ nsIWineURI *wine_uri;
+ LPCWSTR other_url = NULL;
+ nsresult nsres;
TRACE("(%p)->(%p %p)\n", This, other, _retval);
if(This->uri)
return nsIURI_Equals(This->uri, other, _retval);
- FIXME("default action not implemented\n");
- return NS_ERROR_NOT_IMPLEMENTED;
+ nsres = nsIURI_QueryInterface(other, &IID_nsIWineURI, (void**)&wine_uri);
+ if(NS_FAILED(nsres)) {
+ TRACE("Could not get nsIWineURI interface\n");
+ *_retval = FALSE;
+ return NS_OK;
+ }
+
+ nsIWineURI_GetWineURL(wine_uri, &other_url);
+ *_retval = !UrlCompareW(This->wine_url, other_url, TRUE);
+ nsIWineURI_Release(wine_uri);
+
+ return NS_OK;
}
static nsresult NSAPI nsURI_SchemeIs(nsIWineURI *iface, const char *scheme, PRBool *_retval)