diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl
index b3335ba93a2..25846972850 100644
--- a/dlls/mshtml/nsiface.idl
+++ b/dlls/mshtml/nsiface.idl
@@ -721,6 +721,15 @@ interface nsIUploadChannel : nsISupports
nsresult GetUploadStream(nsIInputStream **aUploadStream);
}
+[
+ object,
+ uuid(fc826b53-0db8-42b4-aa6a-5dd2cfca52a4),
+ local
+]
+interface nsIFormPOSTActionChannel : nsIUploadChannel
+{
+}
+
[
object,
uuid(8d171460-a716-41f1-92be-8c659db39b45),
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index d5e49836165..63038d26819 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -540,6 +540,9 @@ static nsresult NSAPI nsChannel_QueryInterface(nsIHttpChannel *iface, nsIIDRef r
}else if(IsEqualGUID(&IID_nsIUploadChannel, riid)) {
TRACE("(%p)->(IID_nsIUploadChannel %p)\n", This, result);
*result = &This->nsIUploadChannel_iface;
+ }else if(IsEqualGUID(&IID_nsIFormPOSTActionChannel, riid)) {
+ TRACE("(%p)->(IID_nsIFormPOSTActionChannel %p)\n", This, result);
+ *result = &This->nsIUploadChannel_iface;
}else if(IsEqualGUID(&IID_nsIHttpChannelInternal, riid)) {
TRACE("(%p)->(IID_nsIHttpChannelInternal %p)\n", This, result);
*result = is_http_channel(This) ? &This->nsIHttpChannelInternal_iface : NULL;