diff --git a/main.cpp b/main.cpp
index 6f91855e7aa89c42c0ec731b9821b9ca41b47976..a9c88212f5adf2cdebd10318f292546e3f68d5ed 100644
--- a/main.cpp
+++ b/main.cpp
@@ -352,7 +352,7 @@ void mappings_callback_to_TRON(const ros::MessageEvent<T>& event){
     std::string topic = event.getConnectionHeader().at("topic");
     byte *bytes = reinterpret_cast<byte*>(event.getMessage().get());
     for (Mapping& mapping : mappings) {
-        if (mapping.topic.c_str() == topic) {
+        if (mapping.topic.c_str() == topic && !mapping.channel.is_input) {
             int var_count = mapping.byte_offset.size();
             int32_t vars[var_count * 4];
             int next_pos = 0;
@@ -453,7 +453,7 @@ void process_TRONs_msgs(){
         }
 
         for (Mapping& map : mappings)
-            if (map.channel.name == chan->name)
+            if (map.channel.name == chan->name && map.channel.is_input)
                 for (ros::Publisher& pub : input_publishers){
                     if (pub.getTopic() == map.topic) {
                         if (map.input_callback != nullptr)