diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index c87f8e2bd6a..875abe9ddb7 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -1925,9 +1925,6 @@ static nsresult NSAPI nsURI_GetPort(nsIURL *iface, PRInt32 *aPort)
TRACE("(%p)->(%p)\n", This, aPort);
- if(This->nsuri)
- return nsIURI_GetPort(This->nsuri, aPort);
-
if(!ensure_uri(This))
return NS_ERROR_UNEXPECTED;
@@ -1944,16 +1941,15 @@ static nsresult NSAPI nsURI_GetPort(nsIURL *iface, PRInt32 *aPort)
static nsresult NSAPI nsURI_SetPort(nsIURL *iface, PRInt32 aPort)
{
nsWineURI *This = impl_from_nsIURL(iface);
+ HRESULT hres;
TRACE("(%p)->(%d)\n", This, aPort);
- if(This->nsuri) {
- invalidate_uri(This);
- return nsIURI_SetPort(This->nsuri, aPort);
- }
+ if(!ensure_uri_builder(This))
+ return NS_ERROR_UNEXPECTED;
- FIXME("default action not implemented\n");
- return NS_ERROR_NOT_IMPLEMENTED;
+ hres = IUriBuilder_SetPort(This->uri_builder, aPort != -1, aPort);
+ return SUCCEEDED(hres) ? NS_OK : NS_ERROR_FAILURE;
}
static nsresult NSAPI nsURI_GetPath(nsIURL *iface, nsACString *aPath)