diff --git a/src/ui/view.cpp b/src/ui/view.cpp
index 4501cc997f59ff644c376427df654309f610fba5..74d972b61800f33ab53fa48b496b87b07f1c42cb 100644
--- a/src/ui/view.cpp
+++ b/src/ui/view.cpp
@@ -7,9 +7,11 @@ namespace rmrf::ui {
 
 view::view(std::shared_ptr<view> parent) : parent_view{parent} {
 	if(this->parent_view != nullptr) {
-		std::shared_ptr<new_child_event> child_event(new new_child_event(this));
+		const std::shared_ptr<new_child_event> child_event(new new_child_event(this));
 		this->parent_view->schedule_update(child_event);
-		delete child_event;
+		if (child_event->unique()) {
+			child_event->reset(); // Delete the object if it wasn't stored elsewhere
+		}
 	}
 }