I’ve installed and upgraded numerous Plone 4 sites, and never had this problem before, but one particular site does not appear to have TinyMCE set as the default visual editor, so users with “Use site default” specified in their preferences don’t get TinyMCE, they get a broken <TextArea> that can’t be saved. If a user explicitly selects TinyMCE, it works.
Where does Plone save this value? I imagine I should be able to set it in the ZMI.
Ah, never mind. @@editing-controlpanel