summaryrefslogtreecommitdiff
path: root/src/chanserv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/chanserv.c')
-rw-r--r--src/chanserv.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/chanserv.c b/src/chanserv.c
index 5c70edfb9..da9928aeb 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -1202,8 +1202,12 @@ void check_modes(Channel * c)
end--;
modes = 0;
- if (ci)
+ if (ci) {
modes = c->mode & ci->mlock_off;
+ /* Make sure we don't remove a mode just set by defcon.. ~ Viper */
+ if (DefConModesSet)
+ modes &= ~(modes & DefConModesOn);
+ }
if (DefConModesSet)
modes |= c->mode & DefConModesOff;