diff --git a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
index 1a70657bab72a4ee0d3c55f376622686fefcdff2..ea519876e5f2815276b6e185d9262febd2ba4762 100755
--- a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
+++ b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
@@ -104,7 +104,7 @@ public class AVATAR2CPOSIX {
     public void saveInFiles(String path) throws FileException {
 
         TraceManager.addDev("Generating files");
-        if (!FileUtils.checkAndCreateAVATARDir(path))
+        if (!FileUtils.checkAndCreateAVATARCodeDir(path))
         	throw new FileException("ERROR: Executable code directory cannot be created.");
         File src_dir = new File(path + GENERATED_PATH);
         if (!src_dir.exists()) {
diff --git a/src/main/java/common/SpecConfigTTool.java b/src/main/java/common/SpecConfigTTool.java
index 99bf1b813eedf7bb9a1c98503d488b48a47ac378..24a305aa067e4deff409ced5aa4af9e3d17d329a 100644
--- a/src/main/java/common/SpecConfigTTool.java
+++ b/src/main/java/common/SpecConfigTTool.java
@@ -109,7 +109,6 @@ public class SpecConfigTTool {
 	
 	public static File createProjectConfig(File dir) {
 		File test = new File ("./");
-		System.out.println(test.getAbsolutePath());
 		File base;
 		if (test.getAbsolutePath().contains("TTool/bin/"))
 			base = new File("../ttool/launch_configurations/project_config.xml");
diff --git a/src/main/java/myutil/FileUtils.java b/src/main/java/myutil/FileUtils.java
index 6c6363fa9f6fad3efa00f2aad43b18a3f5d1416f..783500920b7f4e474b0c7018188a1021769c6516 100755
--- a/src/main/java/myutil/FileUtils.java
+++ b/src/main/java/myutil/FileUtils.java
@@ -97,7 +97,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils{
      * @return true if there's no error, false if the directory cannot be created
      * @throws FileException
      */
-    public static boolean checkAndCreateDir(String s) throws FileException {
+    public static boolean checkAndCreateSystemCDir(String s) throws FileException {
     	File f = new File(s);
     	try {
     		if (!f.exists())
@@ -107,10 +107,16 @@ public class FileUtils extends org.apache.commons.io.FileUtils{
     			File make = new File(ConfigurationTTool.SystemCCodeDirectory + "Makefile");
     			File defs = new File(ConfigurationTTool.SystemCCodeDirectory + "Makefile.defs");
     			File src = new File(ConfigurationTTool.SystemCCodeDirectory + "src_simulator");
+    			File lic = new File(ConfigurationTTool.SystemCCodeDirectory + "LICENCE");
+    			File liceng = new File(ConfigurationTTool.SystemCCodeDirectory + "LICENSE_CECILL_ENG");
+    			File licfr = new File(ConfigurationTTool.SystemCCodeDirectory + "LICENSE_CECILL_FR");
     			
     			FileUtils.copyFileToDirectory(make, f, false);
     			FileUtils.copyFileToDirectory(defs, f, false);
     			FileUtils.copyDirectoryToDirectory(src, f);
+    			FileUtils.copyFileToDirectory(lic, f, false);
+    			FileUtils.copyFileToDirectory(liceng, f, false);
+    			FileUtils.copyFileToDirectory(licfr, f, false);
     		}
     		return true;
 		} catch (Exception e) {
@@ -125,7 +131,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils{
      * @return true if there's no error, false if the directory cannot be created
      * @throws FileException
      */
-    public static boolean checkAndCreateAVATARDir(String s) throws FileException {
+    public static boolean checkAndCreateAVATARCodeDir(String s) throws FileException {
     	File f = new File(s);
     	try {
     		if (!f.exists())
@@ -136,12 +142,18 @@ public class FileUtils extends org.apache.commons.io.FileUtils{
     			File defs = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "Makefile.defs");
     			File soclib = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "Makefile.forsoclib");
     			File src = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "src");
+    			File lic = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "LICENCE");
+    			File liceng = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "LICENSE_CECILL_ENG");
+    			File licfr = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "LICENSE_CECILL_FR");
     			//File topcell = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "generated_topcell");
     		
-				FileUtils.copyFileToDirectory(make, f);
-				FileUtils.copyFileToDirectory(defs, f);
-				FileUtils.copyFileToDirectory(soclib, f);
+				FileUtils.copyFileToDirectory(make, f, false);
+				FileUtils.copyFileToDirectory(defs, f,false);
+				FileUtils.copyFileToDirectory(soclib, f, false);
 				FileUtils.copyDirectoryToDirectory(src, f);
+				FileUtils.copyFileToDirectory(lic, f, false);
+    			FileUtils.copyFileToDirectory(liceng, f, false);
+    			FileUtils.copyFileToDirectory(licfr, f, false);
 				//FileUtils.copyDirectoryToDirectory(topcell, f);
 			}
     		return true;
@@ -152,6 +164,57 @@ public class FileUtils extends org.apache.commons.io.FileUtils{
     	
     }
     
+    public static boolean checkAndCreateProverifDir(String s) throws FileException {
+    	File f = new File(s);
+    	try {
+    		if (!f.exists())
+    			if(!f.mkdir())
+					return false;
+    		if (!s.equals(ConfigurationTTool.ProVerifCodeDirectory)) {
+    			File readme = new File(ConfigurationTTool.ProVerifCodeDirectory + "README");
+    			FileUtils.copyFileToDirectory(readme, f, false);
+    		}
+    		return true;
+    	}
+    	catch (IOException e) {
+			throw new FileException(e.getMessage());
+		}
+    }
+    
+    public static boolean checkAndCreateTMLDir(String s) throws FileException {
+    	File f = new File(s);
+    	try {
+    		if (!f.exists())
+    			if(!f.mkdir())
+					return false;
+    		if (!s.equals(ConfigurationTTool.TMLCodeDirectory)) {
+    			File readme = new File(ConfigurationTTool.TMLCodeDirectory + "README_TML");
+    			FileUtils.copyFileToDirectory(readme, f, false);
+    		}
+    		return true;
+    	}
+    	catch (IOException e) {
+			throw new FileException(e.getMessage());
+		}
+    }
+    
+    public static boolean checkAndCreateCCodeDir(String s) throws FileException {
+    	File f = new File(s);
+    	try {
+    		if (!f.exists())
+    			if(!f.mkdir())
+					return false;
+    		if (!s.equals(ConfigurationTTool.CCodeDirectory)) {
+    			File readme = new File(ConfigurationTTool.CCodeDirectory + "README");
+    			FileUtils.copyFileToDirectory(readme, f, false);
+    		}
+    		return true;
+    	}
+    	catch (IOException e) {
+			throw new FileException(e.getMessage());
+		}
+    }
+    
     public static boolean checkFileForSave(File file) throws FileException {
         //     boolean ok = true;
         //    String pb = "";
diff --git a/src/main/java/tmltranslator/TMLTextSpecification.java b/src/main/java/tmltranslator/TMLTextSpecification.java
index 3a423e2f0c0cdb92d4ed741e05b05a1875b62c45..175c4fb58a61e90d8dc62f6077f4d1963cceb86c 100755
--- a/src/main/java/tmltranslator/TMLTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLTextSpecification.java
@@ -106,9 +106,7 @@ public class TMLTextSpecification<E> {
     }
 
     public void saveFile(String path, String filename) throws FileException {
-    	File dir = new File(path);
-    	if (!dir.exists())
-    		dir.mkdir();
+    	FileUtils.checkAndCreateTMLDir(path);
         TraceManager.addUser("Saving TML spec file in " + path + filename);
         FileUtils.saveFile(path + filename, spec);
     }
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index 4d5bcd8cd72d140c55d495e4c7e78f615684fbf3..79744882e8b3568d32d65b7bd0dd0c80a58e8972 100755
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -482,9 +482,7 @@ public class GTURTLEModeling {
                 return true;
             }
             else {
-            	File test = new File(SpecConfigTTool.CCodeDirectory);
-            	if (!test.exists())
-            		test.mkdir();
+            	FileUtils.checkAndCreateCCodeDir(SpecConfigTTool.CCodeDirectory);
                 CCode.saveFile( SpecConfigTTool.CCodeDirectory + File.separator, applicationName );
             }
         }
diff --git a/src/main/java/ui/window/JDialogProverifVerification.java b/src/main/java/ui/window/JDialogProverifVerification.java
index 6af15a696226df044553e54de7f3045957ce22ad..f9b26d619fb64380eb076e4295c9ee7722f5e45f 100644
--- a/src/main/java/ui/window/JDialogProverifVerification.java
+++ b/src/main/java/ui/window/JDialogProverifVerification.java
@@ -48,6 +48,8 @@ import avatartranslator.AvatarPragmaSecret;
 import launcher.LauncherException;
 import launcher.RshClient;
 import launcher.RshClientReader;
+import myutil.FileException;
+import myutil.FileUtils;
 import myutil.GraphicLib;
 import myutil.MasterProcessInterface;
 import myutil.TraceManager;
@@ -436,15 +438,12 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
             if (pathCode.isEmpty()) {
                 pathCode += "pvspec";
             }
+            
+            FileUtils.checkAndCreateProverifDir(pathCode);
 
+            pathCode += "pvspec";
             testFile = new File(pathCode);
-            if (!testFile.exists())
-            	testFile.mkdirs();
-
-            if (testFile.isDirectory()){
-                pathCode += "pvspec";
-                testFile = new File(pathCode);
-            }
+            
 
             File dir = testFile.getParentFile();
 
@@ -507,6 +506,8 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
             mode = STOPPED;
         } catch (InterruptedException ie) {
             mode = NOT_STARTED;
+        } catch (FileException e) {
+        	System.err.println(e.getMessage() + " : Can't generate proverif file.");
         } catch (Exception e) {
             mode = STOPPED;
             throw e;
diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java
index 19ffea19fdb923cd8fa72b84be7e4907dd63a789..4ced45e771e30e3225aff76f186439b4e63833e1 100755
--- a/src/main/java/ui/window/JDialogSystemCGeneration.java
+++ b/src/main/java/ui/window/JDialogSystemCGeneration.java
@@ -769,7 +769,7 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
                 jta.append("Saving C++ files...\n");
 
                 pathCode = code1.getText();
-                if (!FileUtils.checkAndCreateDir(SpecConfigTTool.SystemCCodeDirectory))
+                if (!FileUtils.checkAndCreateSystemCDir(SpecConfigTTool.SystemCCodeDirectory))
                 	throw new Throwable();
                 tml2systc.saveFile(pathCode, "appmodel");