diff --git a/examples/sPSN_Broker/sPSN_Broker.ino b/examples/Broker/sPSN_Broker/sPSN_Broker.ino
similarity index 100%
rename from examples/sPSN_Broker/sPSN_Broker.ino
rename to examples/Broker/sPSN_Broker/sPSN_Broker.ino
diff --git a/examples/Broker/sPSN_BrokerVerbose/sPSN_BrokerVerbose.ino b/examples/Broker/sPSN_BrokerVerbose/sPSN_BrokerVerbose.ino
new file mode 100644
index 0000000000000000000000000000000000000000..de1eb1c5dbda606168daf1ce7b31fb34d226afe9
--- /dev/null
+++ b/examples/Broker/sPSN_BrokerVerbose/sPSN_BrokerVerbose.ino
@@ -0,0 +1,62 @@
+/**
+ *file:  sPSN_Broker.ino
+ *author:  letsgoING -> info@letsgoing.de
+ *
+ *description:
+ * Dieses Programm ist ein Teil eines Beispiels für ein einfaches Pub-Sub-Netzwerk.
+ *
+ * Für ein Sensor-Netwerk werden 3 Arduinos mit IR-Link-Modulen benötigt:
+ * Arduino1: sPSN_Broker.ino (dieses Programm)
+ *           - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ * Arduino2: sPSN_Client1.ino
+ *           - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ *           - Taster an Pin2
+ *           - LED an Pin9
+ * Arduino3: sPSN_Client2.ino
+ *           - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ *           - Poti an PinA0
+ *           - LED an Pin9
+ *
+ * Für ein Chat-Netzwerk werden mindestens 3 Arduinos benötigt:
+ * Arduino1:   sPSN_Broker.ino (dieses Programm)
+ *            - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ * Arduino2-n: sPSN_Chat.ino
+ *            - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ *
+ *date:  14.12.2020
+ *version: 1.0
+ */
+#include <Arduino.h>
+#include "SoftwareSerial.h"
+#include "DidacticNet.h"
+
+// lege Geschwindigkeit für serielle Schnittstellen fest
+#define SERIAL_BAUD 2400
+
+// lege Pins für SoftwareSerielle Schnittstelle fest
+//  Rx = 10 -> Empfänger | Tx = 11 -> Sender
+SoftwareSerial sSerial(10, 11);
+
+// Erzeuge Broker-Instanz
+DidacticPSNetBroker psnBroker;
+
+void setup()
+{
+  // Starte Serielle Schnittstelle für Verbose-Ausgabe auf SerialMonitor
+  Serial.begin(SERIAL_BAUD);
+
+  // Starte SoftwareSerielle Schnittstelle (zu IR-Link-Modulen)
+  sSerial.begin(SERIAL_BAUD);
+
+  // Lege fest welche Serielle Schnittstelle für sPSN verwendet werden soll
+  psnBroker.begin(sSerial);
+
+  // Setze Broker in Verbos-Mode (Ausgabe aller Daten auf SM) und lege fest welche Serielle Schnittstelle verwendet werden soll
+  psnBroker.setVerbose(Serial);
+}
+
+void loop()
+{
+  // hier verarbeitet der Broker alle Daten
+  psnBroker.handleNetwork();
+}
diff --git a/src/DidacticNet.cpp b/src/DidacticNet.cpp
index 3649719e6ab2dcabad84444ab796b6f4fa0e67d4..4aeaf5ef598d3846271a44b431bf9efccee4fe33 100644
--- a/src/DidacticNet.cpp
+++ b/src/DidacticNet.cpp
@@ -130,9 +130,7 @@ bool DidacticPSNet::recieveData()
   static int msgCounter = 0;
   static int topicCounter = 0;
   static int payloadCounter = 0;
-  // if(msgCounter == NULL){	msgCounter = 0;	}
-  // if(topicCounter == NULL){ topicCounter = 0; }
-  // if(dataCounter == NULL){ dataCounter = 0; }
+
   while (checkData())
   {
     char localBuffer = _port->read();
@@ -159,8 +157,16 @@ bool DidacticPSNet::recieveData()
     }
     else if (_readBufferMessage[0] == MSG_PRELIMITER && localBuffer != MSG_DELIMITER)
     {
-      msgCounter++;
-      _readBufferMessage[msgCounter] = localBuffer;
+      if (msgCounter > LEN_OVERHEAD + MAX_LEN_TOPICS + MAX_LEN_PAYLOAD)
+      {
+        msgCounter == 0;
+        _readBufferMessage[0] = '\0';
+      }
+      else
+      {
+        msgCounter++;
+        _readBufferMessage[msgCounter] = localBuffer;
+      }
     }
   }
   return false;
@@ -515,6 +521,9 @@ bool DidacticPSNetBroker::handleData()
   int currentTopicNr = 0;
   int topicLength = 0;
   int dataLength = 0;
+
+  printVerbose(_readBufferMessage);
+
   if (_readBufferMessage[1] == MSG_PUBLISH)
   {
     topicLength = extractData(2, MAX_LEN_TOPICS, _bufferTopic, MSG_SEPARATOR);
@@ -604,6 +613,35 @@ int DidacticPSNetBroker::getFreeTopicNr()
   return -1;
 }
 
+void DidacticPSNetBroker::setVerbose(Stream &verbosePort) // TEST: new & untested
+{
+  _isVerbose = true;
+  _verbosePort = &verbosePort;
+}
+
+void DidacticPSNetBroker::setNoneVerbose() // TEST: new & untested
+{
+  _isVerbose = false;
+}
+
+bool DidacticPSNetBroker::printVerbose(char *recievedData) // TEST: new & untested
+{
+  char signBuffer = 0;
+  int signCounter = 0;
+
+  if (_isVerbose)
+  {
+    while (signBuffer != MSG_DELIMITER)
+    {
+      signBuffer = recievedData[signCounter];
+      _verbosePort->write(signBuffer);
+      signCounter++;
+    }
+    _verbosePort->write('\n');
+  }
+  return _isVerbose;
+}
+
 //**************************************************************************
 // LITTLE HELPERS FOR CLIENTS ;-)
 //*************************************************************************
diff --git a/src/DidacticNet.h b/src/DidacticNet.h
index fe97293b8ea336f6de30f2550e994e8e366b6570..5812f7ac044dc029bcc403e155731371b776840f 100644
--- a/src/DidacticNet.h
+++ b/src/DidacticNet.h
@@ -223,21 +223,27 @@ public:
 class DidacticPSNetBroker : public DidacticPSNet
 {
 private:
+	Stream *_verbosePort;
 	char _topic[MAX_NR_TOPICS_BROKER][MAX_LEN_TOPICS + 1] = {{0}};
 	char _data[MAX_NR_TOPICS_BROKER][MAX_LEN_PAYLOAD + 1] = {{0}};
 
+	bool _isVerbose = false;
+
 	bool savePayload(char *, int);
 	bool getMessageFilter(char);
 	void writeDataToTopic(int, char *, char *);
 	bool handleData();
 	int getTopicNr(char *);
 	int getFreeTopicNr();
+	bool update(char *, int, char *, int); // TEST: moved from public
+	bool printVerbose(char *);			   // TEST: new & untested
 
 public:
 	DidacticPSNetBroker();
 	~DidacticPSNetBroker();
 
-	bool update(char *, int, char *, int);
+	void setVerbose(Stream &_port); // TEST: new & untested
+	void setNoneVerbose();			// TEST: new & untested
 };
 
 #endif