diff --git a/src/main.cpp b/src/main.cpp
index 35d6648..7714808 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -568,6 +568,8 @@ static const wl_message {}[] = {{
 
 void {}::onDestroyCalled() {{
     wl_resource_set_user_data(pResource, nullptr);
+    wl_list_remove(&resourceDestroyListener.link);
+    wl_list_init(&resourceDestroyListener.link);
 
     if (onDestroy)
         onDestroy(this);