Applied fixed from cras to fix crashes in irssi.
[silc.git] / apps / irssi / src / fe-common / core / fe-windows.c
index fe76427b466e42d12ca455ba51be5e52b20ad294..2370facb239552247a1f1c926c627935141bc0ea 100644 (file)
@@ -160,6 +160,9 @@ void window_set_active(WINDOW_REC *window)
 
 void window_change_server(WINDOW_REC *window, void *server)
 {
+        if (server != NULL && SERVER(server)->disconnected)
+                return;
+
        window->active_server = server;
        signal_emit("window server changed", 2, window, server);
 }
@@ -247,7 +250,8 @@ WINDOW_REC *window_find_level(void *server, int level)
        GSList *tmp;
 
         /* prefer active window if possible */
-       if (WINDOW_LEVEL_MATCH(active_win, server, level))
+       if (active_win != NULL &&
+           WINDOW_LEVEL_MATCH(active_win, server, level))
                 return active_win;
 
        for (tmp = windows; tmp != NULL; tmp = tmp->next) {