Merges from Irssi CVS.
[crypto.git] / apps / irssi / src / silc / core / silc-channels.c
index 02c3b8ec3d16fdd8831f7b6f518ef33748edae8d..108f6dbec1e3ec2625f535e7b70227e5b54e418a 100644 (file)
@@ -66,11 +66,13 @@ static void sig_channel_destroyed(SILC_CHANNEL_REC *channel)
 {
   if (!IS_SILC_CHANNEL(channel))
     return;
+  if (channel->server && channel->server->disconnected)
+    return;
 
   if (channel->server != NULL && !channel->left && !channel->kicked) {
     /* destroying channel record without actually
        having left the channel yet */
-    silc_command_exec(channel->server, "PART", channel->name);
+    silc_command_exec(channel->server, "LEAVE", channel->name);
   }
 }
 
@@ -156,6 +158,7 @@ static void command_part(const char *data, SILC_SERVER_REC *server,
   signal_emit("message part", 5, server, chanrec->name,
              server->nick, userhost, "");
   
+  chanrec->left = TRUE;
   silc_command_exec(server, "LEAVE", chanrec->name);
   signal_stop();