diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c
index dfeb81d6a11..01c98bbdbe1 100644
--- a/dlls/mshtml/olecmd.c
+++ b/dlls/mshtml/olecmd.c
@@ -310,7 +310,7 @@ static DWORD query_edit_status(HTMLDocument *This, const char *nscmd)
if(This->usermode != EDITMODE || This->readystate < READYSTATE_INTERACTIVE)
return OLECMDF_SUPPORTED;
- if(This->nscontainer) {
+ if(This->nscontainer && nscmd) {
nsparam = create_nscommand_params();
get_ns_command_state(This->nscontainer, nscmd, nsparam);
@@ -636,8 +636,8 @@ static HRESULT WINAPI OleCommandTarget_QueryStatus(IOleCommandTarget *iface, con
prgCmds[i].cmdf = OLECMDF_SUPPORTED|OLECMDF_ENABLED;
break;
case IDM_FONTNAME:
- FIXME("CGID_MSHTML: IDM_FONTNAME\n");
- prgCmds[i].cmdf = OLECMDF_SUPPORTED|OLECMDF_ENABLED;
+ TRACE("CGID_MSHTML: IDM_FONTNAME\n");
+ prgCmds[i].cmdf = query_edit_status(This, NULL);
break;
case IDM_FONTSIZE:
FIXME("CGID_MSHTML: IDM_FONTSIZE\n");
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 6b28b13c0a1..c6434563258 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -2039,6 +2039,7 @@ static void test_MSHTML_QueryStatus(IUnknown *unk, DWORD cmdf)
if(unk) _unk = unk;
else unk = _unk;
+ test_QueryStatus(unk, &CGID_MSHTML, IDM_FONTNAME, cmdf);
test_QueryStatus(unk, &CGID_MSHTML, IDM_BOLD, cmdf);
test_QueryStatus(unk, &CGID_MSHTML, IDM_ITALIC, cmdf);
test_QueryStatus(unk, &CGID_MSHTML, IDM_UNDERLINE, cmdf);