diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 5ca44251c096fdb9891a7e9522889b5d8c6e2f3a..e5e4ebbe569d069f701ef8362ed5570147da655d 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -286,6 +286,7 @@ static void agent_devicestate_cb(const struct ast_event *event, void *unused)
 	device = ast_event_get_ie_str(event, AST_EVENT_IE_DEVICE);
 
 	if (ast_strlen_zero(device)) {
+		AST_LIST_UNLOCK(&agents);
 		return;
 	}