Index: gui/greeter/Makefile.am
===================================================================
--- gui/greeter/Makefile.am	(revision 4540)
+++ gui/greeter/Makefile.am	(working copy)
@@ -16,6 +16,8 @@ INCLUDES = \
 	-DSBINDIR=\""$(sbindir)"\"		 	\
 	-DPIXMAPDIR=\""$(pixmapdir)"\"		 	\
 	$(GUI_CFLAGS)					\
+	$(PANGO_CFLAGS)					\
+	$(PANGOFT_CFLAGS)				\
 	$(GREETER_CFLAGS)
 
 #
Index: daemon/gdmconsolekit.c
===================================================================
--- daemon/gdmconsolekit.c	(revision 4541)
+++ daemon/gdmconsolekit.c	(working copy)
@@ -44,6 +44,9 @@
 							  G_TYPE_INVALID))
 #define CK_TYPE_PARAMETER_LIST (dbus_g_type_get_collection ("GPtrArray", \
 							    CK_TYPE_PARAMETER_STRUCT))
+
+static DBusGConnection *private_connection = NULL;
+
 static void
 add_param_int (GPtrArray       *parameters,
 	       const char      *key,
@@ -122,7 +125,7 @@ get_string (DBusGProxy *proxy,
 				 G_TYPE_STRING, str,
 				 G_TYPE_INVALID);
 	if (! res) {
-		g_warning ("%s failed: %s", method, error->message);
+		gdm_error ("%s failed: %s", method, error->message);
 		g_error_free (error);
 	}
 
@@ -172,7 +175,7 @@ unlock_ck_session (const char *user,
 				 &sessions,
 				 G_TYPE_INVALID);
 	if (! res) {
-		g_warning ("Failed to get list of sessions: %s", error->message);
+		gdm_error ("Failed to get list of sessions: %s", error->message);
 		g_error_free (error);
 		goto out;
 	}
@@ -200,7 +203,7 @@ unlock_ck_session (const char *user,
 							 G_TYPE_INVALID,
 							 G_TYPE_INVALID);
 				if (! res) {
-					g_warning ("Unable to unlock %s: %s", ssid, error->message);
+					gdm_error ("Unable to unlock %s: %s", ssid, error->message);
 					g_error_free (error);
 				}
 			}
@@ -233,7 +236,8 @@ open_ck_session (struct passwd *pwent,
 	gdm_debug ("Opening ConsoleKit session for %s", pwent->pw_name);
 
 	error = NULL;
-	connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+	connection = dbus_g_bus_get_private (DBUS_BUS_SYSTEM, &error);
+	private_connection = connection;
 	if (connection == NULL) {
 		gdm_debug ("Failed to connect to the D-Bus daemon: %s", error->message);
 		g_error_free (error);
@@ -278,7 +282,7 @@ open_ck_session (struct passwd *pwent,
 				 &cookie,
 				 G_TYPE_INVALID);
 	if (! res) {
-		g_warning ("OpenSession failed: %s", error->message);
+		gdm_error ("OpenSession failed: %s", error->message);
 		g_error_free (error);
 	}
 
@@ -300,7 +304,8 @@ close_ck_session (const char *cookie)
 	g_return_if_fail (cookie != NULL);
 
 	error = NULL;
-	connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+	/*connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);*/
+	connection = private_connection;
 	if (connection == NULL) {
 		gdm_debug ("Failed to connect to the D-Bus daemon: %s", error->message);
 		g_error_free (error);
@@ -324,9 +329,11 @@ close_ck_session (const char *cookie)
 				 G_TYPE_INVALID,
 				 G_TYPE_INVALID);
 	if (! res) {
-		g_warning ("CloseSession failed: %s", error->message);
+		gdm_error ("CloseSession failed: %s", error->message);
 		g_error_free (error);
 	}
 
 	g_object_unref (proxy);
+
+	dbus_connection_close (dbus_g_connection_get_connection (connection));
 }
