diff --git a/src/shared/Core/MessageBroker/Subscription.h b/src/shared/Core/MessageBroker/Subscription.h
index 390b100d27c180fa75ac62bf1512b0a0c8d1e667..4015f2cccb35082bb4d13ac119de8d87fc1250e7 100644
--- a/src/shared/Core/MessageBroker/Subscription.h
+++ b/src/shared/Core/MessageBroker/Subscription.h
@@ -11,13 +11,15 @@ class Subscription
 public:
     void unsubscribe() { MessageBroker::getInstance().unsubscribe(this); }
 
+    bool matchesFilter(Filter filter) { return this->filter == filter; };
+
     ~Subscription() { unsubscribe(); }
 
     friend class MessageBroker;
 
 private:
     Subscription(MessageBroker::SubscriberFn callback, Filter filter)
-        : filter(filter), callback(std::move(callback)){};
+        : filter(filter), callback(std::move(callback)) {};
 
     Subscription()                     = delete;
     Subscription(Subscription&)        = delete;
diff --git a/src/shared/Modules/Graph/Graph.cpp b/src/shared/Modules/Graph/Graph.cpp
index 29da0a0ec764e5d4b5e2a2213b1c8473f619b604..2a3b3873a477841474f40bdeb2702fcd28dd845f 100644
--- a/src/shared/Modules/Graph/Graph.cpp
+++ b/src/shared/Modules/Graph/Graph.cpp
@@ -145,9 +145,11 @@ void Graph::onFilterAdded(const Filter& filter)
     }
     plot->replot();
 
-    subscription = MessageBroker::getInstance().subscribe(
-        filter, [this](const Message& message, const Filter& filter)
-        { onMessageReceived(message, filter); });
+    subscriptions.insert(
+        {filter,
+         MessageBroker::getInstance().subscribe(
+             filter, [this](const Message& message, const Filter& filter)
+             { onMessageReceived(message, filter); })});
 }
 
 void Graph::onFilterRemoved(const Filter& filter)
@@ -164,7 +166,7 @@ void Graph::onFilterRemoved(const Filter& filter)
 
         lines.remove(filter);
 
-        subscription = nullptr;
+        subscriptions.erase(subscriptions.find(filter));
     }
     else
     {
diff --git a/src/shared/Modules/Graph/Graph.h b/src/shared/Modules/Graph/Graph.h
index fa2da80460270aa645d75ddd702ede9be5c64034..21122ba515c85578b62cfb78f3ecb3881d88a100 100644
--- a/src/shared/Modules/Graph/Graph.h
+++ b/src/shared/Modules/Graph/Graph.h
@@ -28,7 +28,6 @@
 #include <QTimer>
 #include <QWidget>
 
-
 class Graph : public Module
 {
     Q_OBJECT
@@ -79,6 +78,6 @@ private:
 
     int legendFontSize = 15;
 
-    std::unique_ptr<Subscription> subscription;
+    std::map<Filter, std::unique_ptr<Subscription>> subscriptions;
     std::unique_ptr<SubscriptionsPanel> subscriptionsPanel;
 };