summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modes/umode_o.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modes/umode_o.cpp b/src/modes/umode_o.cpp
index 7cee7d238..fee6fb447 100644
--- a/src/modes/umode_o.cpp
+++ b/src/modes/umode_o.cpp
@@ -24,7 +24,9 @@ ModeUserOperator::ModeUserOperator(InspIRCd* Instance) : ModeHandler(Instance, '
ModeAction ModeUserOperator::OnModeChange(User* source, User* dest, Channel*, std::string&, bool adding, bool servermode)
{
/* Only opers can execute this class at all */
- if (!IS_OPER(source))
+ if (!ServerInstance->ULine(source->nick) &&
+ !ServerInstance->ULine(source->server) &&
+ !*source->oper)
return MODEACTION_DENY;
/* Not even opers can GIVE the +o mode, only take it away */