diff --git a/include/submessages.h b/include/submessages.h
index be1cd5a17527fbedd0dd0a646b802b3b47f385fb..ea2d9ff5d93e304f1873a08e75ecdeee63a2309d 100644
--- a/include/submessages.h
+++ b/include/submessages.h
@@ -9,7 +9,7 @@ class SubMessage{
 	private:
 		unsigned char startMessage;    // Delimitador de início.
 		int sizSeqTyp;       // 6 bits para tamanho, 6 bits para sequencia e 4 bits para o tipo.
-		unsigned char *data;              // Área para envio dos dados.
+		unsigned char *data = NULL;              // Área para envio dos dados.
 		unsigned char parity;             // 1 Byte para a paridade vertical (detecção de erros).
 
 		// Calcula a paridade da mensagem, esse método está como privado para ser
diff --git a/src/main.cpp b/src/main.cpp
index 459b3ee0ac4b24c379b6f4418a62fe2900dad6ea..1cf10fd1886465f11911f812ddb3103c359171ee 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -88,7 +88,8 @@ int main(int argc, char *argv[]) {
               resposta.setData((unsigned char*)"4",0,0); // Manda um Nack
               send(soquete,resposta.objToString(),68, 0);
             } else {
-              if(mainMessage.receiveLS(resposta.getData(), currentPath)){
+              cout << "res " << serverReceive.getData() << endl;
+              if(mainMessage.receiveLS(serverReceive.getData(), currentPath)){
                 cout << "ERRO: ls remoto.";
               }
             }
diff --git a/src/messages.cpp b/src/messages.cpp
index 68eae3435f7d01db7a901dd5e2f7af69d93459d1..bc20e5b4f1b833b635584d540edd722fb396bfd1 100644
--- a/src/messages.cpp
+++ b/src/messages.cpp
@@ -544,27 +544,41 @@ int Message::receiveLS(unsigned char* options, char* currentPath){
 	ifstream lsFile;
   unsigned char* lsData;
   int i;
-
+cout << "-1-" << endl;
   parameter = (char*)options;
+cout << "-parameter- " << parameter << endl;
 	path = currentPath;
+cout << "-3-" << endl;
 	/* Para dar um ls apenas, é necessário escrever "ls ." */
 	/* Precisamos pensar em um jeito de concertar isso. */
 	switch(lsParameter(parameter)){
 		case 1:
+cout << "-case1-" << endl;
 			lsAux = "ls > " + path + "/ls.txt";
+cout << "-case1.1-" << endl;
 			system(lsAux.c_str());
+cout << "-case1.2-" << endl;
 			break;
 		case 2:
+cout << "-case2-" << endl;
 			lsAux = "ls -a > " + path + "/ls.txt";
+cout << "-case2.1-" << endl;
 			system(lsAux.c_str());
+cout << "-case2.2-" << endl;
 			break;
 		case 3:
+cout << "-case3-" << endl;
 			lsAux = "ls -l > " + path + "/ls.txt";
+cout << "-case3.1-" << endl;
 			system(lsAux.c_str());
+cout << "-case3.2-" << endl;
 			break;
 		case 4:
+cout << "-case4-" << endl;
 			lsAux = "ls -la > " + path + "/ls.txt";
+cout << "-case4.1-" << endl;
 			system(lsAux.c_str());
+cout << "-case4.2-" << endl;
 			break;
 		case -1:
 			puts("Parâmetro de ls inválido.");
@@ -577,11 +591,13 @@ int Message::receiveLS(unsigned char* options, char* currentPath){
 	fileName = path + "/ls.txt";
 	lsFile.open(fileName.c_str(), ios::in);
 	lsFile.seekg (0);
+cout << "+1+" << endl;
 	// Leitura do arquivo.
   show += path + "\n";
 	while(getline(lsFile, temp)) {
 		show += temp + "\n";
 	}
+cout << "+2+" << endl;
 	// Remove arquivo ls.txt
 	remove(fileName.c_str());
 
@@ -589,10 +605,13 @@ int Message::receiveLS(unsigned char* options, char* currentPath){
   for(i = 0; i < show.size(); i++){
     lsData[i] = show[i];
   }
+cout << "+3+" << endl;
 
   if(sendData(lsData) == 0){
+cout << "+return 0+" << endl;
     return 0;
   }else{
+cout << "+return -1+" << endl;
     return -1;
   }
 }
diff --git a/src/submessages.cpp b/src/submessages.cpp
index c480c6cb122695227f40d9407e59c151274a765f..7289c31af362a7c3202fa6de316ac6ccb9386f3a 100644
--- a/src/submessages.cpp
+++ b/src/submessages.cpp
@@ -54,6 +54,9 @@ void SubMessage::setData(unsigned char* dataBody, int type, int seq){
   int i, tamanho = 1;
 
   while(dataBody[tamanho-1] != '\0' && tamanho<64) tamanho++;
+  cout << "AQUI" << endl;
+  delete(data);
+  cout << "FERA" << endl;
   data = new unsigned char[tamanho];
 
   for (i = 0; i < tamanho; i++){