diff -up empathy-2.91.90.2/libempathy/empathy-connectivity.c.foo empathy-2.91.90.2/libempathy/empathy-connectivity.c
--- empathy-2.91.90.2/libempathy/empathy-connectivity.c.foo	2011-03-07 14:40:49.466812166 -0600
+++ empathy-2.91.90.2/libempathy/empathy-connectivity.c	2011-03-07 14:46:27.806582338 -0600
@@ -87,6 +87,11 @@ connectivity_change_state (EmpathyConnec
 }
 
 #ifdef HAVE_NM
+
+#if !defined(NM_CHECK_VERSION)
+#define NM_CHECK_VERSION(x,y,z) 0
+#endif
+
 static void
 connectivity_nm_state_change_cb (NMClient *client,
     const GParamSpec *pspec,
@@ -103,7 +108,11 @@ connectivity_nm_state_change_cb (NMClien
 
   state = nm_client_get_state (priv->nm_client);
   new_nm_connected = !(state == NM_STATE_CONNECTING
+#if NM_CHECK_VERSION(0,8,992)
+      || state == NM_STATE_DISCONNECTING
+#endif
       || state == NM_STATE_DISCONNECTED);
+    new_nm_connected = TRUE;
 
   DEBUG ("New NetworkManager network state %d (connected: %s)", state,
       new_nm_connected ? "true" : "false");
