diff -up pidgin-2.7.11/libpurple/network.c.nm09more pidgin-2.7.11/libpurple/network.c --- pidgin-2.7.11/libpurple/network.c.nm09more 2011-04-26 11:54:40.894171020 -0500 +++ pidgin-2.7.11/libpurple/network.c 2011-04-26 12:00:55.533487383 -0500 @@ -833,8 +833,20 @@ purple_network_is_available(void) purple_debug_warning("network", "NetworkManager not active. Assuming connection exists.\n"); } - if (nm_state == NM_STATE_UNKNOWN || nm_state == NM_STATE_CONNECTED) - return TRUE; + switch (nm_state) + { + case NM_STATE_UNKNOWN: +#if NM_CHECK_VERSION(0,8,992) + case NM_STATE_CONNECTED_LOCAL: + case NM_STATE_CONNECTED_SITE: + case NM_STATE_CONNECTED_GLOBAL: +#else + case NM_STATE_CONNECTED: +#endif + return TRUE; + default: + break; + } return FALSE; @@ -1170,8 +1182,8 @@ purple_network_init(void) NM_DBUS_SERVICE, NM_DBUS_PATH, NM_DBUS_INTERFACE); - dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID); - dbus_g_proxy_connect_signal(nm_proxy, "StateChange", + dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal(nm_proxy, "StateChanged", G_CALLBACK(nm_state_change_cb), NULL, NULL); dbus_proxy = dbus_g_proxy_new_for_name(nm_conn,