diff --git a/Message.cpp b/Message.cpp
index 4461bcc52ff491dea224c3bc4bdf4e4e775e95d0..2d88346ca0bd37bee4fb65ea19a2ba3758f41d0f 100644
--- a/Message.cpp
+++ b/Message.cpp
@@ -64,7 +64,7 @@ char* Message::getMessageAsCharPointer(){
 }
 
 int Message::getMessageSize(){
-    return size.to_ulong()+4;
+    return size.to_ulong() < MINSIZE ? MINSIZE+4 : size.to_ulong()+4;
 }
 
 int Message::dataToInt() {
diff --git a/Protocol.cpp b/Protocol.cpp
index 081fde22990a24d3f4c8409e6f1db729b859f66e..6a2613b5faedfb9b5c2a13f32f82070e8ba06516 100644
--- a/Protocol.cpp
+++ b/Protocol.cpp
@@ -72,10 +72,11 @@ int Protocol::setData(vector<BYTE> data, int type){
         last = data.begin()+i+size+1;
         vector<BYTE> subvector(first, last);
         msg.data = subvector;
+        msg.size = bitset<SIZE_S>(size);
+        msg.calcParity();
         if(size < MINSIZE){
             BYTE zero = 0x00;
             msg.data.insert(msg.data.end(), MINSIZE-size, zero);
-            size = MINSIZE;
         }
         msg.size = bitset<SIZE_S>(size);
         msg.calcParity();
@@ -95,7 +96,8 @@ int Protocol::recvMessage(int sockt){
     Message msg = Message();
     int size = (int)(dataRec[1]>>2);
     cout << "Tamanho:" << size << "\t";
-    msg.setBitFields(dataRec[0], dataRec[1], dataRec[2], dataRec[size+3]);
+    int dataSize = size < MINSIZE ? MINSIZE : size;
+    msg.setBitFields(dataRec[0], dataRec[1], dataRec[2], dataRec[dataSize+3]);
     cout << "Sequence:" << msg.sequence.to_ulong() << "\t";
 
     BYTE msgData[size];
diff --git a/server.cpp b/server.cpp
index 40b87c6c17ff25799ea748f11c6c2450b55ac60c..637f0ce24804343e5cf50193ad847e5a0d3587bc 100644
--- a/server.cpp
+++ b/server.cpp
@@ -18,6 +18,9 @@ int main(){
             if(status == CD){
                 cout << "Recebeu CD\n";
                 cd(receiveProtocol.getDataAsString());
+                vector<BYTE> val(1,(BYTE)0);
+                sendProtocol.setData(val, OK);
+                sendProtocol.sendMessage(sockt,0);
             }else if(status == LS){
                 cout << "protocol data: " << receiveProtocol.getDataAsString() << endl;
                 cout << "message data: " << receiveProtocol.getMessages().back().getDataAsString() << endl;