--- a/daemons/dmeventd/dmeventd.c
+++ a/daemons/dmeventd/dmeventd.c
@@ -969,8 +969,10 @@ static int _register_for_event(struct message_data *message_data)
if (!(thread = _lookup_thread_status(message_data))) {
_unlock_mutex();
- if (!(ret = _do_register_device(thread_new)))
+ if (!_do_register_device(thread_new)) {
+ ret = -1;
goto out;
+ }
thread = thread_new;
thread_new = NULL;