diff -ruN NetworkManager-0.9.6.0.orig/configure.ac NetworkManager-0.9.6.0/configure.ac
--- NetworkManager-0.9.6.0.orig/configure.ac	2012-08-07 12:06:40.000000000 -0400
+++ NetworkManager-0.9.6.0/configure.ac	2012-10-07 16:56:50.000000000 -0400
@@ -368,11 +368,12 @@
 fi
 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
 
-AC_ARG_WITH(session-tracking, AS_HELP_STRING([--with-session-tracking=systemd|ck|none], [Build NetworkManager with specific session tracking support]))
-if test "z$with_session_tracking" = "z"; then
-    # Default to ConsoleKit session tracking like we used before
-    with_session_tracking=ck
-fi
+dnl AC_ARG_WITH(session-tracking, AS_HELP_STRING([--with-session-tracking=systemd|ck|none], [Build NetworkManager with specific session tracking support]))
+dnl if test "z$with_session_tracking" = "z"; then
+dnl     # Default to ConsoleKit session tracking like we used before
+dnl     with_session_tracking=ck
+dnl fi
+with_session_tracking=systemd
 
 case $with_session_tracking in
     ck|none|no) ;;
diff -ruN NetworkManager-0.9.6.0.orig/data/NetworkManager.service.in NetworkManager-0.9.6.0/data/NetworkManager.service.in
--- NetworkManager-0.9.6.0.orig/data/NetworkManager.service.in	2012-08-02 16:41:52.000000000 -0400
+++ NetworkManager-0.9.6.0/data/NetworkManager.service.in	2012-10-07 16:56:50.000000000 -0400
@@ -7,7 +7,7 @@
 [Service]
 Type=dbus
 BusName=org.freedesktop.NetworkManager
-ExecStart=@sbindir@/NetworkManager --no-daemon
+ExecStart=@sbindir@/NetworkManager-systemd --no-daemon
 # Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog()
 # with LOG_PERROR when run in foreground. But systemd redirects stderr to
 # syslog by default, which results in logging each message twice.
diff -ruN NetworkManager-0.9.6.0.orig/src/Makefile.am NetworkManager-0.9.6.0/src/Makefile.am
--- NetworkManager-0.9.6.0.orig/src/Makefile.am	2012-08-06 18:16:50.000000000 -0400
+++ NetworkManager-0.9.6.0/src/Makefile.am	2012-10-07 16:58:05.000000000 -0400
@@ -112,7 +112,7 @@
 # NetworkManager
 ###########################################
 
-sbin_PROGRAMS = NetworkManager
+sbin_PROGRAMS = NetworkManager-ck NetworkManager-nosession NetworkManager-systemd
 
 NetworkManager_SOURCES = \
 		nm-call-store.c \
@@ -199,15 +199,9 @@
 NetworkManager_SOURCES += nm-connectivity.c nm-connectivity.h
 endif
 
-if SESSION_TRACKING_SYSTEMD
-NetworkManager_SOURCES += nm-session-monitor-systemd.c
-else
-if SESSION_TRACKING_CK
-NetworkManager_SOURCES += nm-session-monitor-ck.c
-else
-NetworkManager_SOURCES += nm-session-monitor-null.c
-endif
-endif
+NetworkManager_ck_SOURCES = $(NetworkManager_SOURCES) nm-session-monitor-ck.c
+NetworkManager_nosession_SOURCES = $(NetworkManager_SOURCES) nm-session-monitor-null.c
+NetworkManager_systemd_SOURCES = $(NetworkManager_SOURCES) nm-session-monitor-systemd.c
 
 nm-access-point-glue.h: $(top_srcdir)/introspection/nm-access-point.xml
 	$(AM_V_GEN) dbus-binding-tool --prefix=nm_access_point --mode=glib-server --output=$@ $<
@@ -286,7 +280,6 @@
 	$(LIBNL_CFLAGS) \
 	$(GMODULE_CFLAGS) \
 	$(POLKIT_CFLAGS) \
-	$(SYSTEMD_CFLAGS) \
 	-DG_DISABLE_DEPRECATED \
 	-DBINDIR=\"$(bindir)\" \
 	-DSBINDIR=\"$(sbindir)\" \
@@ -296,13 +289,17 @@
 	-DLOCALSTATEDIR=\"$(localstatedir)\" \
 	-DNM_RUN_DIR=\"$(rundir)\" \
 	-DNMLOCALEDIR=\"$(datadir)/locale\" \
-	-DNMPLUGINDIR=\"$(pkglibdir)\"
+	-DNMPLUGINDIR=\"$(pkglibdir)\" \
 	-DARP_DEBUG
 
 if WITH_CONCHECK
 NetworkManager_CPPFLAGS += $(LIBSOUP_CFLAGS)
 endif
 
+NetworkManager_ck_CPPFLAGS = $(NetworkManager_CPPFLAGS)
+NetworkManager_nosession_CPPFLAGS = $(NetworkManager_CPPFLAGS)
+NetworkManager_systemd_CPPFLAGS = $(NetworkManager_CPPFLAGS) $(SYSTEMD_CFLAGS)
+
 NetworkManager_LDADD = \
 	./generated/libnm-generated.la \
 	./logging/libnm-logging.la \
@@ -327,7 +324,6 @@
 	$(LIBNL_LIBS) \
 	$(GMODULE_LIBS) \
 	$(POLKIT_LIBS) \
-	$(SYSTEMD_LIBS) \
 	$(LIBM) \
 	$(LIBDL)
 
@@ -335,7 +331,14 @@
 NetworkManager_LDADD += $(LIBSOUP_LIBS)
 endif
 
+NetworkManager_ck_LDADD = $(NetworkManager_LDADD)
+NetworkManager_nosession_LDADD = $(NetworkManager_LDADD)
+NetworkManager_systemd_LDADD = $(NetworkManager_LDADD) $(SYSTEMD_LIBS)
+
 NetworkManager_LDFLAGS = -rdynamic
+NetworkManager_ck_LDFLAGS = $(NetworkManager_LDFLAGS)
+NetworkManager_nosession_LDFLAGS = $(NetworkManager_LDFLAGS)
+NetworkManager_systemd_LDFLAGS = $(NetworkManager_LDFLAGS)
 
 libexec_PROGRAMS = nm-crash-logger
 nm_crash_logger_SOURCES = nm-crash-logger.c
