diff --git a/src/apex/nonrepeating_buffer.py b/src/apex/nonrepeating_buffer.py
index 5bc7683f5abf3abd16170481b7303215b0a8cf57..ba71854531205392a3d6c8cb47f4232f418b9e44 100644
--- a/src/apex/nonrepeating_buffer.py
+++ b/src/apex/nonrepeating_buffer.py
@@ -10,12 +10,13 @@ import apex.aprs.util
 
 
 class NonrepeatingBuffer(object):
-    def __init__(self, base_tnc, base_name, base_port=None, buffer_size=10000, buffer_time=30):
+    def __init__(self, base_tnc, base_name, base_port=None, echo_packets=True, buffer_size=10000, buffer_time=30):
         self.packet_cache = cachetools.TTLCache(buffer_size, buffer_time)
         self.lock = threading.Lock()
         self.base_tnc = base_tnc
         self.base_port = base_port
         self.base_name = base_name
+        self.echo_packets = echo_packets
 
     @property
     def port(self):
@@ -40,7 +41,9 @@ class NonrepeatingBuffer(object):
                     self.base_tnc.write(frame, self.base_port)
                 else:
                     self.base_tnc.write(frame)
-                apex.echo_colorized_frame(frame, self.base_name, False)
+
+                if self.echo_packets:
+                    apex.echo_colorized_frame(frame, self.base_name, False)
 
     def read(self, *args, **kwargs):
         with self.lock:
@@ -50,7 +53,8 @@ class NonrepeatingBuffer(object):
             frame_hash = str(apex.aprs.util.hash_frame(frame))
             if frame_hash not in self.packet_cache:
                 self.packet_cache[frame_hash] = frame
-                apex.echo_colorized_frame(frame, self.base_name, True)
+                if self.echo_packets:
+                    apex.echo_colorized_frame(frame, self.base_name, True)
                 return frame
             else:
                 return None