summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/ngircd/irc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index dc3b2f2e..12fd8214 100644
--- a/src/ngircd/irc.c
+++ b/src/ngircd/irc.c
@@ -694,7 +694,10 @@ Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors)
 				goto send_next_target;
 			}
 
-			if (Client_HasMode(cl, 'C')) {
+			if (Client_HasMode(cl, 'C') &&
+			    !Client_HasMode(from, 'o') &&
+			    !(Client_Type(from) == CLIENT_SERVER) &&
+			    !(Client_Type(from) == CLIENT_SERVICE)) {
 				cl2chan = Channel_FirstChannelOf(cl);
 				while (cl2chan) {
 					chan = Channel_GetChannel(cl2chan);