diff --git a/src/main.cpp b/src/main.cpp
index aaf01964d8f5886057a95ef8079829568c940407..459b3ee0ac4b24c379b6f4418a62fe2900dad6ea 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -73,7 +73,7 @@ int main(int argc, char *argv[]) {
           // }
           if(serverReceive.getType() == 3){
             if(serverReceive.checkParity()){ // Se a paridade estiver errada
-              resposta.setData((unsigned char*)"0",0,0); // Manda um Nack
+              resposta.setData((unsigned char*)"3",0,0); // Manda um Nack
               send(soquete,resposta.objToString(),68, 0);
             } else {
               mainMessage.receiveCD(serverReceive.getData());
@@ -83,6 +83,15 @@ int main(int argc, char *argv[]) {
                 currentPath = getcwd(buff, (size_t)size);
               cout << currentPath << "(S) " << endl;
             }
+          }else if(serverReceive.getType() == 4){
+            if(serverReceive.checkParity()){ // Se a paridade estiver errada
+              resposta.setData((unsigned char*)"4",0,0); // Manda um Nack
+              send(soquete,resposta.objToString(),68, 0);
+            } else {
+              if(mainMessage.receiveLS(resposta.getData(), currentPath)){
+                cout << "ERRO: ls remoto.";
+              }
+            }
           }
         }
       }
diff --git a/src/messages.cpp b/src/messages.cpp
index 7c36266bf5d5d02ed6db8c7e92bff25017976fc6..68eae3435f7d01db7a901dd5e2f7af69d93459d1 100644
--- a/src/messages.cpp
+++ b/src/messages.cpp
@@ -578,6 +578,7 @@ int Message::receiveLS(unsigned char* options, char* currentPath){
 	lsFile.open(fileName.c_str(), ios::in);
 	lsFile.seekg (0);
 	// Leitura do arquivo.
+  show += path + "\n";
 	while(getline(lsFile, temp)) {
 		show += temp + "\n";
 	}