diff --git a/sway/input/seat.c b/sway/input/seat.c
index df48b751..69b04843 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -287,6 +287,7 @@ static void drag_icon_handle_destroy(struct wl_listener *listener, void *data) {
 	wl_list_remove(&icon->link);
 	wl_list_remove(&icon->surface_commit.link);
 	wl_list_remove(&icon->unmap.link);
+	wl_list_remove(&icon->map.link);
 	wl_list_remove(&icon->destroy.link);
 	free(icon);
 }