diff --git a/hald/ck-tracker.c b/hald/ck-tracker.c
index 34aa640..47860dd 100644
--- a/hald/ck-tracker.c
+++ b/hald/ck-tracker.c
@@ -256,7 +256,7 @@ ck_session_get_info (CKTracker *tracker, CKSession *session)
 		goto error;
 	}
 	if (!dbus_message_get_args (reply, NULL,
-				    DBUS_TYPE_INT32, &(session->user),
+				    DBUS_TYPE_UINT32, &(session->user),
 				    DBUS_TYPE_INVALID)) {
 		HAL_ERROR (("Invalid GetUnixUser reply from CK"));
 		goto error;
@@ -531,7 +531,7 @@ ck_tracker_process_system_bus_message (CKTracker *tracker, DBusMessage *message)
 		seat_objpath = dbus_message_get_path (message);
 
 		if (!dbus_message_get_args (message, NULL,
-					    DBUS_TYPE_STRING, &seat_objpath,
+					    DBUS_TYPE_OBJECT_PATH, &seat_objpath,
 					    DBUS_TYPE_INVALID)) {
 			HAL_ERROR (("Invalid SeatAdded signal from CK"));
 			goto out;
@@ -558,7 +558,7 @@ ck_tracker_process_system_bus_message (CKTracker *tracker, DBusMessage *message)
 		seat_objpath = dbus_message_get_path (message);
 
 		if (!dbus_message_get_args (message, NULL,
-					    DBUS_TYPE_STRING, &seat_objpath,
+					    DBUS_TYPE_OBJECT_PATH, &seat_objpath,
 					    DBUS_TYPE_INVALID)) {
 			HAL_ERROR (("Invalid SeatRemoved signal from CK"));
 			goto out;
@@ -588,7 +588,7 @@ ck_tracker_process_system_bus_message (CKTracker *tracker, DBusMessage *message)
 		seat_objpath = dbus_message_get_path (message);
 
 		if (!dbus_message_get_args (message, NULL,
-					    DBUS_TYPE_STRING, &session_objpath,
+					    DBUS_TYPE_OBJECT_PATH, &session_objpath,
 					    DBUS_TYPE_INVALID)) {
 			HAL_ERROR (("Invalid SessionAdded signal from CK"));
 			goto out;
@@ -624,7 +624,7 @@ ck_tracker_process_system_bus_message (CKTracker *tracker, DBusMessage *message)
 		seat_objpath = dbus_message_get_path (message);
 
 		if (!dbus_message_get_args (message, NULL,
-					    DBUS_TYPE_STRING, &session_objpath,
+					    DBUS_TYPE_OBJECT_PATH, &session_objpath,
 					    DBUS_TYPE_INVALID)) {
 			HAL_ERROR (("Invalid SessionRemoved signal from CK"));
 			goto out;
