diff --git a/components/streams/src/feed.cpp b/components/streams/src/feed.cpp
index aa43a3935dc9bac35b25ac712b3f8d3f104198f8..ff7c11fce2686920de86b5e30c2947c4e6ebf7d1 100644
--- a/components/streams/src/feed.cpp
+++ b/components/streams/src/feed.cpp
@@ -224,6 +224,11 @@ Feed::~Feed() {
 	UNIQUE_LOCK(mtx_, lk);
 	//ftl::saveJSON(FTL_LOCAL_CONFIG_ROOT "/feed.json", feed_config);
 
+	handle_receiver_.cancel();
+	handle_record_.cancel();
+	handle_sender_.cancel();
+	record_recv_handle_.cancel();
+
 	receiver_.reset();  // Note: Force destruction first to remove filters this way
 	sender_.reset();
 	recorder_.reset();