diff -Naur pidgin-2.2.0/libpurple/connection.c pidgin-2.2.0.tpg/libpurple/connection.c --- pidgin-2.2.0/libpurple/connection.c 2007-09-14 04:45:39.000000000 +0000 +++ pidgin-2.2.0.tpg/libpurple/connection.c 2007-09-27 11:44:42.000000000 +0000 @@ -36,6 +36,9 @@ #include "server.h" #include "signals.h" #include "util.h" +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> static GList *connections = NULL; static GList *connections_connecting = NULL; @@ -138,6 +141,8 @@ purple_account_set_connection(account, gc); purple_signal_emit(purple_connections_get_handle(), "signing-on", gc); + /* Re-read resolv.conf and freinds in case DNS servers have changed */ + res_init(); if (regist) { diff -Naur pidgin-2.2.0/libpurple/network.c pidgin-2.2.0.tpg/libpurple/network.c --- pidgin-2.2.0/libpurple/network.c 2007-09-14 04:45:39.000000000 +0000 +++ pidgin-2.2.0.tpg/libpurple/network.c 2007-09-27 10:45:49.000000000 +0000 @@ -611,8 +611,6 @@ switch(current) { case LIBNM_ACTIVE_NETWORK_CONNECTION: - /* Call res_init in case DNS servers have changed */ - res_init(); if (ui_ops != NULL && ui_ops->network_connected != NULL) ui_ops->network_connected(); prev = current;