diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 8e391699e..0a2f73ce1 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -856,7 +856,13 @@ void Channel::SetCorrectModes(User *user, bool give_modes) given = true; } else if (take_modes && !has_priv) - this->RemoveMode(NULL, cm, user->GetUID()); + { + /* Only remove modes if they are > voice */ + if (cm->name == "VOICE") + take_modes = false; + else + this->RemoveMode(NULL, cm, user->GetUID()); + } } // Check mlock |