diff --git a/configure.ac b/configure.ac
index 04836fa..0a2d451 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1423,18 +1423,24 @@ fi
 dnl Check for NetworkManager.h; if we don't have it, oh well
 if test "x$enable_dbus" = "xyes" ; then
 	if test "x$enable_nm" = "xyes" ; then
-		PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
+		PKG_CHECK_MODULES(NETWORKMANAGER, [libnm], [
 			AC_SUBST(NETWORKMANAGER_CFLAGS)
 			AC_SUBST(NETWORKMANAGER_LIBS)
 			AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
 		], [
-			enable_nm=no
-			if test "x$force_deps" = "xyes" ; then
-				AC_MSG_ERROR([
+			PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
+				AC_SUBST(NETWORKMANAGER_CFLAGS)
+				AC_SUBST(NETWORKMANAGER_LIBS)
+				AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
+			], [
+				enable_nm=no
+				if test "x$force_deps" = "xyes" ; then
+					AC_MSG_ERROR([
 NetworkManager development headers not found.
 Use --disable-nm if you do not need NetworkManager support.
 ])
-			fi])
+				fi])
+		])
 	fi
 else
 	enable_nm=no
diff --git a/libpurple/network.c b/libpurple/network.c
index c43e3c7..b17e439 100644
--- a/libpurple/network.c
+++ b/libpurple/network.c
@@ -939,8 +939,13 @@ nm_update_state(NMState state)
 #if NM_CHECK_VERSION(0,8,992)
 		case NM_STATE_DISCONNECTING:
 #endif
+#if NM_CHECK_VERSION(1,0,0)
+			if (prev != NM_STATE_CONNECTED_GLOBAL && prev != NM_STATE_UNKNOWN)
+				break;
+#else
 			if (prev != NM_STATE_CONNECTED && prev != NM_STATE_UNKNOWN)
 				break;
+#endif
 			if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
 				ui_ops->network_disconnected();
 			break;
