diff --git a/daemon/gdm-welcome-session.c b/daemon/gdm-welcome-session.c
index 84beb03..e4e3410 100644
--- a/daemon/gdm-welcome-session.c
+++ b/daemon/gdm-welcome-session.c
@@ -803,7 +803,7 @@ parse_dbus_launch_output (const char *output,
         }
 
         if (addressp != NULL) {
-                *addressp = g_strdup (g_match_info_fetch (match_info, 1));
+                *addressp = g_match_info_fetch (match_info, 1);
         }
 
         if (pidp != NULL) {
@@ -830,8 +830,8 @@ static gboolean
 start_dbus_daemon (GdmWelcomeSession *welcome_session)
 {
         gboolean   res;
-        char      *std_out;
-        char      *std_err;
+        char      *std_out = NULL;
+        char      *std_err = NULL;
         int        exit_status;
         GError    *error;
         GPtrArray *env;
@@ -871,6 +871,8 @@ start_dbus_daemon (GdmWelcomeSession *welcome_session)
                 g_debug ("GdmWelcomeSession: Started D-Bus daemon on pid %d", welcome_session->priv->dbus_pid);
         }
  out:
+        g_free (std_out);
+        g_free (std_err);
         return res;
 }
 
@@ -1460,6 +1462,8 @@ gdm_welcome_session_finalize (GObject *object)
 
         gdm_welcome_session_stop (welcome_session);
 
+        ck_connector_unref (welcome_session->priv->ckc);
+
         g_free (welcome_session->priv->command);
         g_free (welcome_session->priv->user_name);
         g_free (welcome_session->priv->group_name);
@@ -1472,6 +1476,8 @@ gdm_welcome_session_finalize (GObject *object)
         g_free (welcome_session->priv->server_address);
         g_free (welcome_session->priv->server_dbus_path);
         g_free (welcome_session->priv->server_dbus_interface);
+        g_free (welcome_session->priv->server_env_var_name);
+        g_free (welcome_session->priv->dbus_bus_address);
 
         G_OBJECT_CLASS (gdm_welcome_session_parent_class)->finalize (object);
 }
