diff --git a/ChangeLog b/ChangeLog
index 75f093d660eb1b31cea8309f0b0aa515e157dd32..e38a2458818dc620e1b2385771118a33d1a992bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-07-30: Ali aliov@xfce.org
+	* Fix a typo that prevents from getting the correct 
+	critical configuration.
+	* Emit a warning and exit normally if failed to register
+	DBus names instead of exiting abnormally so the session
+	will try to restart us.
+
 2009-07-27: Ali aliov@xfce.org
 	* src/xfpm-battery.c don't notify when starting up.
 	* src/xfpm-engine.c fix a typo output message.
diff --git a/NEWS b/NEWS
index b1c124ab45f76554c04cb97b215887d9477ed2f5..18771f9314c91a58f7ce3ccdab94af1b91676dd4 100644
--- a/NEWS
+++ b/NEWS
@@ -2,3 +2,4 @@ Current
 =======
 - Make it possible to compile without network manager support.
 - Add never show icon to the system tray configuration (bug #5613).
+- Fix a typo that prevents from getting the correct critical configuration (bug #5619).
diff --git a/src/xfpm-manager.c b/src/xfpm-manager.c
index 70323d6203aeb827d497335cf2e59db7ef5fabce..5c65221bdaca7ffc8005437c6533fa7cb885c4e3 100644
--- a/src/xfpm-manager.c
+++ b/src/xfpm-manager.c
@@ -181,20 +181,21 @@ xfpm_manager_quit (XfpmManager *manager)
     return TRUE;
 }
 
-static void
+static gboolean
 xfpm_manager_reserve_names (XfpmManager *manager)
 {
-    if ( !xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
-				  "org.xfce.PowerManager") ) 
-    {
-	g_error ("Unable to reserve bus name: Xfce Power Manager\n");
-    }
-    
-    if (!xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
+    if ( !xfpm_dbus_register_name (dbus_g_connection_get_connection (manager->priv->session_bus),
+				   "org.xfce.PowerManager") ||
+	 !xfpm_dbus_register_name (dbus_g_connection_get_connection (manager->priv->session_bus),
 				  "org.freedesktop.PowerManagement") )
     {
-	g_error ("Unable to reserve bus name: PowerManagement\n");
+	g_warning ("Unable to reserve bus name: Maybe any already running instance?\n");
+	xfpm_session_quit (manager->priv->session);
+	g_object_unref (G_OBJECT (manager));
+	gtk_main_quit ();
+	return FALSE;
     }
+    return TRUE;
 }
 
 XfpmManager *
@@ -215,8 +216,9 @@ void xfpm_manager_start (XfpmManager *manager)
 {
     gboolean hal_running;
     
-    xfpm_manager_reserve_names (manager);
-    
+    if ( !xfpm_manager_reserve_names (manager) )
+	goto out;
+	
     dbus_g_error_domain_register (XFPM_ERROR,
 				  NULL,
 				  XFPM_TYPE_ERROR);
diff --git a/src/xfpm-supply.c b/src/xfpm-supply.c
index 4d03acc91c7c0739193bb440cf446680bfaf6fc5..d33a0df0c074346d46a450913297f57bfc8eb649 100644
--- a/src/xfpm-supply.c
+++ b/src/xfpm-supply.c
@@ -392,7 +392,7 @@ xfpm_supply_handle_primary_critical (XfpmSupply *supply, XfpmBattery *battery)
 {
     XfpmShutdownRequest critical_action;
     
-    g_object_get (G_OBJECT (supply),
+    g_object_get (G_OBJECT (supply->priv->conf),
 	          CRITICAL_BATT_ACTION_CFG, &critical_action,
 		  NULL);