diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 58860c0b6b600e54b66e82d46d5996c798b89b74..dc90781865d53c9094458f3566ece51fc0e98b9b 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -3600,6 +3600,8 @@ drm_destroy(struct weston_compositor *ec)
 	if (b->gbm)
 		gbm_device_destroy(b->gbm);
 
+	udev_unref(b->udev);
+
 	weston_launcher_destroy(ec->launcher);
 
 	close(b->drm.fd);