diff --git a/src/MessageParser.cpp b/src/MessageParser.cpp
index 6760988a2e929847d5211d52dad6373d106a9fbe..fac5d76254c18bcd92477778c333d6c4aecdc98f 100644
--- a/src/MessageParser.cpp
+++ b/src/MessageParser.cpp
@@ -61,7 +61,9 @@ void MessageParser::parseTC(const uint8_t *data, uint16_t length, Message &messa
 	uint8_t serviceType = data[1];
 	uint8_t messageType = data[2];
 
-	ErrorHandler::assertRequest(pusVersion == 2, message, ErrorHandler::UnacceptableMessage);
+	// todo: Fix this parsing function, because it assumes PUS header in data, which is not true
+	//  with the current implementation
+	// ErrorHandler::assertRequest(pusVersion == 2, message, ErrorHandler::UnacceptableMessage);
 
 	// Remove the length of the header
 	length -= 5;
@@ -90,12 +92,13 @@ Message MessageParser::parseRequestTC(uint8_t* data) {
 }
 
 String<ECSS_EVENT_SERVICE_STRING_SIZE> MessageParser::convertTCToStr(Message &message) {
-	String<ECSS_EVENT_SERVICE_STRING_SIZE> dataString("");
-	dataString[0] = ECSS_PUS_VERSION << 4; // Assign the pusVersion = 2
-	dataString[1] = message.serviceType;
-	dataString[2] = message.messageType;
-	dataString.insert(5, reinterpret_cast<char *>(message.data), ECSS_EVENT_SERVICE_STRING_SIZE -
-	5);
+	uint8_t tempString[ECSS_EVENT_SERVICE_STRING_SIZE] = {0};
+
+	tempString[0] = ECSS_PUS_VERSION << 4; // Assign the pusVersion = 2
+	tempString[1] = message.serviceType;
+	tempString[2] = message.messageType;
+	memcpy(tempString + 5, message.data, ECSS_EVENT_SERVICE_STRING_SIZE - 5);
+	String<ECSS_EVENT_SERVICE_STRING_SIZE> dataString(tempString);
 
 	return dataString;
 }