diff -r f9af31dbfeb8 -r 13375e6c4ecb plugins/muc/muc.lib.lua --- a/plugins/muc/muc.lib.lua Wed Nov 25 21:42:05 2009 +0500 +++ b/plugins/muc/muc.lib.lua Wed Nov 25 22:00:33 2009 +0500 @@ -529,7 +529,12 @@ stanza.attr.from = current_nick; local subject = getText(stanza, {"subject"}); if subject then - self:set_subject(current_nick, subject); -- TODO use broadcast_message_stanza + if occupant.role == "moderator" then + self:set_subject(current_nick, subject); -- TODO use broadcast_message_stanza + else + stanza.attr.from = from; + origin.send(st.error_reply(stanza, "cancel", "forbidden")); + end else self:broadcast_message(stanza, true); end