diff --git a/SD/picofs.c b/SD/picofs.c
index b774cc814093c9e37980ca08e6a403b42f49efbb..0878e487adf8ee367c15c86943215c4f6a9b2846 100755
--- a/SD/picofs.c
+++ b/SD/picofs.c
@@ -398,7 +398,6 @@ void CP(SD_info *sd, char *source_filename, char *destination_filename) {
     char numBuffer[64];
     int destination_offset;
     int source_offset;
-    int offset;
     int numDataBlock;
     int newDataBlock;
     
@@ -440,46 +439,54 @@ void CP(SD_info *sd, char *source_filename, char *destination_filename) {
     writeBlock(sd,destination_offset, 0, destination_filename, strlen(destination_filename));
 
     // Copier les blocs de données associés au fichier source dans de nouveaux blocs de données pour le fichier destination
-    for (int i = 0; i < MAX_BLOCKS_PER_FILE_DESCRIPTION; i++) {
-        if (i == 0) { offset = MAX_FILENAME_LENGTH; } 
-        else { offset = 0; }
+    //for (int i = 1; i < MAX_BLOCKS_PER_FILE_DESCRIPTION; i++) {
+ 
         
         // Lecture des numéros de bloc dans les blocs de description
-        for (int byteNum=0; byteNum<BLOCK_SIZE; byteNum+=2) {
-            readBlock(sd,source_offset + i, offset + byteNum, numBuffer, 2);
+        //for (int byteNum=0; byteNum<BLOCK_SIZE; byteNum+=2) {
+            readBlock(sd,source_offset+1, 0, numBuffer, 2);
             
 
-            numDataBlock = reconstituteNumber(numBuffer);
+            numDataBlock = reconstituteNumber(numBuffer); 
+            //si aucune donnée à copier
             if (numDataBlock == 0) {
                 printf("\nLa copie de \"%s\" sous le nom \"%s\" a été créée avec succès.\n", source_filename, destination_filename);
                 return;
             }
             
-            for (int chunkStart = 0; chunkStart < BLOCK_SIZE; chunkStart += CHUNK_SIZE) {
+            //for (int chunkStart = 0; chunkStart < BLOCK_SIZE; chunkStart += //CHUNK_SIZE) {
                 // On stocke le bloc de données associé au fichier source dans descriptionBuffer
-                readBlock(sd,numDataBlock, chunkStart, descriptionBuffer, CHUNK_SIZE);
+                readBlock(sd,numDataBlock, 0, descriptionBuffer, CHUNK_SIZE);
+                
                 
-                if (chunkStart == 0) {
                     // Trouver un nouveau bloc de données disponible
                     newDataBlock = findAvailableBlock(sd);
                     
+                    char dataBlockNumBuffer[CHUNK_SIZE];
+                    readBlock(sd, newDataBlock, 0, dataBlockNumBuffer, CHUNK_SIZE);
+                    while (dataBlockNumBuffer[0] != 0)
+                    {
+                        newDataBlock++;
+                        readBlock(sd, newDataBlock, 0, dataBlockNumBuffer, CHUNK_SIZE);
+                    }
+
                     // Mise à jour de la carte de disponibilités
                     setBlockAvailability(sd,newDataBlock, 1);
                     
                     // Ecriture du numéro de bloc dans la description du fichier
                     createNumberBuffer(newDataBlock,numBuffer);
-                    writeBlock(sd,destination_offset+i, offset+byteNum, numBuffer, 2);
-                }
+                    writeBlock(sd,destination_offset+1, 0, numBuffer, 2);
+                
             
                 // Ecriture du bloc de données dans le premier bloc disponible
-                writeBlock(sd,newDataBlock, chunkStart, descriptionBuffer, CHUNK_SIZE);
-            }
-        }
-    }
+                writeBlock(sd,newDataBlock, 0, descriptionBuffer, CHUNK_SIZE);
+                printf("\nLa copie de \"%s\" sous le nom \"%s\" a été créée avec succès.\n", source_filename, destination_filename);
+    //}
 }
 
 
 
+
 int main(int argc, char *argv[]) {
 
     char user_data;
@@ -497,14 +504,11 @@ int main(int argc, char *argv[]) {
 
     printf("Pico ordinateur OK\n\n");
     
-    erase(&sd,0,15000);
     current_cmd[0] = '\0'; // Initialise la chaîne vide
     printf("PicoOrdi>");
 
     while (1) {
 
-        _delay_ms(10);
-        
         user_data = get_serial();
        
         if (user_data == '\b'){