diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Client.pike b/lib/modules/Protocols.pmod/IRC.pmod/Client.pike
index 635e26efd6489bde5947c5842ce23331874cfef9..e312213100195ef51df3689a0f7c322dd1b1583f 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Client.pike
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Client.pike
@@ -186,7 +186,14 @@ void got_notify(string from,string type,
 	    return;
 	 }
 	 break;
-	 
+
+      case "474": // "cannot join channel"
+	 if ((c=channels[lower_case(message||"")]))
+	 {
+	    if (c->not_join_fail) c->not_join_fail(extra*" ");
+	    return;
+	 }
+	 break;
 
       case "401": // no such nick
 	 werror("%O\n",({from,type,to,message,extra}));
@@ -195,7 +202,7 @@ void got_notify(string from,string type,
       case "367": // mode b line
 	 if ((c=channels[lower_case(message||"")]))
 	 {
-	    if (c->not_mode_b) c->not_mode_b(to,extra*" ");
+	    if (c->not_mode_b) c->not_mode_b(extra*" ");
 	    return;
 	 }
 	 break;
@@ -252,7 +259,7 @@ void got_notify(string from,string type,
       case "QUIT":
 	 forget_person(originator);
 	 foreach (values(channels),c)
-	    c->not_part(originator,message,originator);
+	    if (c && c->not_part) c->not_part(originator,message,originator);
 	 if (options->quit_notify)
 	 {
 	    // who, why
diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike b/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike
index e8df9820ebd39fffb5d67777b241bad2c4a90e45..c4ad9fd3ee8395ce32c66bb21a85527b47e8e47b 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Raw.pike
@@ -4,7 +4,7 @@ import ".";
 
 object con;
 
-//  #define IRC_DEBUG
+// #define IRC_DEBUG
 
 function(string,string ...:void) command_callback;
 function(string,string ...:void) notify_callback;
diff --git a/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod b/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod
index 7ffddd7c8d9586fa5c88d94d05179f96b9f6e927..9580fc6f539ea015d004e3829fd4a7c80972df9e 100644
--- a/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod
+++ b/lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod
@@ -6,7 +6,7 @@ NICK Mirar^
 USER mirar mistel.idonex.se irc.starchat.net :Mirar is testing
 */
 
-string __cvs_id="$Id: Requests.pmod,v 1.4 2000/11/12 23:41:50 mirar Exp $";
+string __cvs_id="$Id: Requests.pmod,v 1.5 2000/11/18 10:39:00 mirar Exp $";
 
 import ".";
 
@@ -102,6 +102,7 @@ object ping=NoReply("PING","text");
 object privmsg=NoReply("PRIVMSG","string","text");
 object notice=NoReply("NOTICE","string","text");
 object join=NoReply("JOIN","string");
+object part=NoReply("PART","string");
 object names=NoReply("NAMES","string");
 object who=NoReply("WHO","string");
 object kick=NoReply("KICK","string","string","text");