diff --git a/src/DidacticNet.cpp b/src/DidacticNet.cpp
index 52e0fc9c7ad91567b1023ebc64ac2962766bf75d..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;