diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index a81bf7c3fec..4a872a8bebb 100644
--- a/dlls/mshtml/dispex.c
+++ b/dlls/mshtml/dispex.c
@@ -1230,6 +1230,7 @@ static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD
switch(flags) {
case DISPATCH_PROPERTYPUT:
+ case DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF:
if(res)
V_VT(res) = VT_EMPTY;
hres = builtin_propput(This, func, dp, caller);
@@ -1249,7 +1250,7 @@ static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD
if(flags != (DISPATCH_PROPERTYGET|DISPATCH_METHOD) || dp->cArgs) {
if(V_VT(&v) != VT_DISPATCH) {
- FIXME("Not a function %s\n", debugstr_variant(&v));
+ FIXME("Not a function %s flags %08x\n", debugstr_variant(&v), flags);
VariantClear(&v);
return E_FAIL;
}
diff --git a/dlls/mshtml/tests/script.c b/dlls/mshtml/tests/script.c
index 031c0ac3439..c9b9eb56875 100644
--- a/dlls/mshtml/tests/script.c
+++ b/dlls/mshtml/tests/script.c
@@ -2091,6 +2091,13 @@ static void test_default_arg_conv(IHTMLWindow2 *window)
test_elem_disabled(elem, VARIANT_FALSE);
+ V_VT(&v) = VT_I4;
+ V_I4(&v) = 1;
+ hres = dispex_propput(dispex, DISPID_IHTMLELEMENT3_DISABLED, DISPATCH_PROPERTYPUTREF, &v, NULL);
+ ok(hres == S_OK, "InvokeEx failed: %08x\n", hres);
+
+ test_elem_disabled(elem, VARIANT_TRUE);
+
IHTMLElement_Release(elem);
IDispatchEx_Release(dispex);
}