diff --git a/gtf.engine/gtf.engines/Traitement.class.inc b/gtf.engine/gtf.engines/Traitement.class.inc
index 042bcbbd8570ed0e854e67b94ed1669275ae7ca8..d87dfd3606399bbe7faa0cb0bc02b8ea8a6dad23 100755
--- a/gtf.engine/gtf.engines/Traitement.class.inc
+++ b/gtf.engine/gtf.engines/Traitement.class.inc
@@ -136,7 +136,7 @@ class Traitement {
         // table de correspondance entre GTF et le FMW utiliser dans les fonction d'encodage 
         $this->aReplaceGTF = array("\r\n", " ", "(", ")", "$", "&", "@", "°", "'", ",", "\"", "{", "}", "[", "]", ";", "/", "\\", "é", "à");
         $this->aReplaceFME = array("<lf>", "<space>", "<openparen>", "<closeparen>", "<dollar>", "<amp>", "<at>", "<u00b0>", "<apos>", "<comma>", "<quote>", "<opencurly>", "<closecurly>", "<openbracket>", "<closebracket>", "<semicolon>", "<solidus>", "<backslash>", "<u00e9>", "<u00e0>");
-        writeToLog(str_replace('[this->sFmwFileName]', $this->sFmwFileName, str_replace('[sParams]', $sParams, INFO_RESOURCES)), $this->sRobotLogFile);
+        //writeToLog(str_replace('[this->sFmwFileName]', $this->sFmwFileName, str_replace('[sParams]', $sParams, INFO_RESOURCES)), $this->sRobotLogFile);
     }
 
     /**
@@ -737,9 +737,16 @@ class Traitement {
             copy($sFmwFilePath, $sRepositoryFmwFilePath);
             // Supprime le fichier de l'ancienne version du projet (GTF + Fme Server).
             if ($aWorkspace['version'] > 0) {
-                $sRepositoryOldFmwFileName = pathinfo($this->sFmwFileName, PATHINFO_FILENAME) . '_v' . --$aWorkspace['version'] . '.' . pathinfo($this->sFmwFileName, PATHINFO_EXTENSION);
-                unlink($this->aProperties["workspace_dir"] . "/" . pathinfo($this->sFmwFileName, PATHINFO_DIRNAME) . "/" . $sRepositoryOldFmwFileName);
-                //$oFmeServer->serviceRequest('repositories/' . $sRepository . '/items/' . $sRepositoryOldFmwFileName, 'delete');
+                $sOldFmwFileName = pathinfo($this->sFmwFileName, PATHINFO_FILENAME) . '_v' . --$aWorkspace['version'] . '.' . pathinfo($this->sFmwFileName, PATHINFO_EXTENSION);
+                $sOldFmwFilePath = $this->aProperties["workspace_dir"] . "/" . pathinfo($this->sFmwFileName, PATHINFO_DIRNAME) . "/" . $sOldFmwFileName;
+                if (file_exists($sOldFmwFilePath))
+                    unlink($sOldFmwFilePath);
+                //$oFmeServer->serviceRequest('repositories/' . $sRepository . '/items/' . $sOldFmwFileName, 'delete');
+                // S3 -> copie du fichier avec la dernière version et suppression de l'ancien.
+                if ($this->aProperties['fileS3Uploader'] === true) {
+                    deleteFileFromWsDataDirTree('gtf', 'workspace', $aWorkspace['workspace_id'], 'fme', $sOldFmwFileName);
+                    copyFileInWsDataDir ('gtf', 'workspace', $aWorkspace['workspace_id'], 'fme', pathinfo($this->sFmwFileName, PATHINFO_BASENAME), $sRepositoryFmwFileName);
+                }
             }
         }
         // Upload du fichier .fmw.
diff --git a/gtf.engine/gtf.engines/engine.php b/gtf.engine/gtf.engines/engine.php
index de4ebb04155b7ea36e52e97eef295f53241896da..4d7af46b28a6d713874df20c94dfbeaeabcbf782 100755
--- a/gtf.engine/gtf.engines/engine.php
+++ b/gtf.engine/gtf.engines/engine.php
@@ -268,14 +268,14 @@ if ($ErrorLicense == "0") {
                                     $sWorkspaceDir = $properties["workspace_dir"] . '/' . $aDemande['workspace_id'];
                                     if (file_exists($sWorkspaceDir))
                                         clearDir($sWorkspaceDir);
-                                    mkdir($sWorkspaceDir, 0777, true);
-                                    mkdir($sWorkspaceDir . '/fme', 0777, true);
-                                    $aTree = getDirectoryInfosFromWsDataDir('gtf', 'workspace', $aDemande['workspace_id'], 'fme');
-                                    if (!empty($aTree)) {
-                                        if (!empty($aTree[0]['content'])) {
-                                            foreach($aTree[0]['content'] as $aFile) {
-                                                $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $aDemande['workspace_id'], 'fme', $aFile['filename']);
-                                                file_put_contents($sWorkspaceDir . '/fme/' . $aFile['filename'], $sFmwFileContent);
+                                    if (mkdir($sWorkspaceDir . '/fme', 0777, true)) {
+                                        $aTree = getDirectoryInfosFromWsDataDir('gtf', 'workspace', $aDemande['workspace_id'], 'fme');
+                                        if (!empty($aTree)) {
+                                            if (!empty($aTree[0]['content'])) {
+                                                foreach($aTree[0]['content'] as $aFile) {
+                                                    $sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $aDemande['workspace_id'], 'fme', $aFile['filename']);
+                                                    file_put_contents($sWorkspaceDir . '/fme/' . $aFile['filename'], $sFmwFileContent);
+                                                }
                                             }
                                         }
                                     }
@@ -842,7 +842,16 @@ function TesteHeureCreuse($sHeureMin, $sHeureMax) {
  */
 function updateOrder($iOrderId, $iStatut, $sExecutionDate, $sLogUrl = null, $iNbSec = null, $sResultUrl = null) {
     // Variables globales.
-    global $oBd, $properties, $aSql;
+    global $oBd, $properties, $aSql, $aDemande;
+    // Suppression du répertoire temporaire du projet.
+    if ($properties['fileS3Uploader'] === true) {
+        $aStatus = array(2, 3, 4, 6, 7);
+        if (in_array($iStatut, $aStatus)) {
+            $sWorkspacePath = $properties['workspace_dir'] . '/' . $aDemande['workspace_id'];
+            if (file_exists($sWorkspacePath))
+                clearDir($sWorkspacePath);
+        }
+    }
     // Requete d'update de la demande.
     if (empty($sLogUrl))
         $sLogUrl = null;