diff --git a/src/Message.cpp b/src/Message.cpp
index d9b9b2c17b851576b2c06f916c2f3896aa05e426..8ee7e1816dbd971c7cc5640da1eb707c1da6bea5 100644
--- a/src/Message.cpp
+++ b/src/Message.cpp
@@ -37,8 +37,11 @@ void Message::appendBits(uint8_t numBits, uint16_t data) {
 }
 
 void Message::finalize() {
-	if(currentBit != 0)
-	dataSize++;
+	assertI(dataSize < ECSS_MAX_MESSAGE_SIZE, ErrorHandler::MessageTooLarge);
+
+	if (currentBit != 0) {
+		dataSize++;
+	}
 }
 
 void Message::appendByte(uint8_t value) {
diff --git a/src/Platform/x86/Service.cpp b/src/Platform/x86/Service.cpp
index ff9d9d95de57f749996cb8a2fcd7853cebda7813..b148c24291543bac97bf6e13b460f7dda2f5c914 100644
--- a/src/Platform/x86/Service.cpp
+++ b/src/Platform/x86/Service.cpp
@@ -2,7 +2,10 @@
 #include <iomanip>
 #include "Service.hpp"
 
-void Service::storeMessage(const Message &message) {
+void Service::storeMessage(Message & message) {
+	// appends the remaining bits to complete a byte
+	message.finalize();
+
 	// Just print it to the screen
 	std::cout << "New " << ((message.packetType == Message::TM) ? "TM" : "TC") << "["
 	          << std::hex