diff --git a/modeling/AVATAR/AirbusDoor.xml b/modeling/AVATAR/AirbusDoor.xml
index d7beb2e4f7a2a6716524e9ae4970229125b3db41..cb969542a581c6eee87c22b729ba658f48163c4d 100644
--- a/modeling/AVATAR/AirbusDoor.xml
+++ b/modeling/AVATAR/AirbusDoor.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 
 <TURTLEGMODELING version="1.0beta">
 
@@ -3960,8 +3960,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="2011" />
-<P1  x="787" y="437" id="2288" />
-<P2  x="658" y="595" id="2218" />
+<P1  x="787" y="437" id="2122" />
+<P2  x="658" y="595" id="2138" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="2010" >
 <father id="2012" num="0" />
@@ -3989,8 +3989,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="2018" />
-<P1  x="837" y="437" id="2290" />
-<P2  x="892" y="587" id="2193" />
+<P1  x="837" y="437" id="2124" />
+<P2  x="892" y="587" id="2195" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="2017" >
 <father id="2019" num="0" />
@@ -4018,8 +4018,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="2025" />
-<P1  x="875" y="424" id="2273" />
-<P2  x="988" y="469" id="2136" />
+<P1  x="875" y="424" id="2107" />
+<P2  x="988" y="469" id="2220" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="2024" >
 <father id="2026" num="0" />
@@ -4047,8 +4047,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="2032" />
-<P1  x="775" y="412" id="2263" />
-<P2  x="618" y="455" id="2095" />
+<P1  x="775" y="412" id="2097" />
+<P2  x="618" y="455" id="2261" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="2031" >
 <father id="2033" num="0" />
@@ -4076,8 +4076,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="2039" />
-<P1  x="836" y="345" id="2258" />
-<P2  x="825" y="387" id="2261" />
+<P1  x="836" y="345" id="2135" />
+<P2  x="825" y="387" id="2095" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="2038" >
 <father id="2040" num="0" />
@@ -4261,11 +4261,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5106" id="2134" >
 <father id="2341" num="0" />
-<cdparam x="568" y="455" />
+<cdparam x="775" y="387" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="541" minY="0" maxY="391" />
-<infoparam name="state0" value="IDLE" />
+<infoparam name="state0" value="Test" />
 <TGConnectingPoint num="0" id="2094" />
 <TGConnectingPoint num="1" id="2095" />
 <TGConnectingPoint num="2" id="2096" />
@@ -4309,172 +4309,172 @@
 <extraparam>
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="2175" >
+<SUBCOMPONENT type="5100" id="2136" >
 <father id="2341" num="1" />
-<cdparam x="938" y="469" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="829" y="325" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="541" minY="0" maxY="391" />
-<infoparam name="state0" value="FAULT" />
+<cdrectangleparam minX="0" maxX="626" minY="0" maxY="426" />
+<infoparam name="start state" value="null" />
 <TGConnectingPoint num="0" id="2135" />
-<TGConnectingPoint num="1" id="2136" />
-<TGConnectingPoint num="2" id="2137" />
-<TGConnectingPoint num="3" id="2138" />
-<TGConnectingPoint num="4" id="2139" />
-<TGConnectingPoint num="5" id="2140" />
-<TGConnectingPoint num="6" id="2141" />
-<TGConnectingPoint num="7" id="2142" />
-<TGConnectingPoint num="8" id="2143" />
-<TGConnectingPoint num="9" id="2144" />
-<TGConnectingPoint num="10" id="2145" />
-<TGConnectingPoint num="11" id="2146" />
-<TGConnectingPoint num="12" id="2147" />
-<TGConnectingPoint num="13" id="2148" />
-<TGConnectingPoint num="14" id="2149" />
-<TGConnectingPoint num="15" id="2150" />
-<TGConnectingPoint num="16" id="2151" />
-<TGConnectingPoint num="17" id="2152" />
-<TGConnectingPoint num="18" id="2153" />
-<TGConnectingPoint num="19" id="2154" />
-<TGConnectingPoint num="20" id="2155" />
-<TGConnectingPoint num="21" id="2156" />
-<TGConnectingPoint num="22" id="2157" />
-<TGConnectingPoint num="23" id="2158" />
-<TGConnectingPoint num="24" id="2159" />
-<TGConnectingPoint num="25" id="2160" />
-<TGConnectingPoint num="26" id="2161" />
-<TGConnectingPoint num="27" id="2162" />
-<TGConnectingPoint num="28" id="2163" />
-<TGConnectingPoint num="29" id="2164" />
-<TGConnectingPoint num="30" id="2165" />
-<TGConnectingPoint num="31" id="2166" />
-<TGConnectingPoint num="32" id="2167" />
-<TGConnectingPoint num="33" id="2168" />
-<TGConnectingPoint num="34" id="2169" />
-<TGConnectingPoint num="35" id="2170" />
-<TGConnectingPoint num="36" id="2171" />
-<TGConnectingPoint num="37" id="2172" />
-<TGConnectingPoint num="38" id="2173" />
-<TGConnectingPoint num="39" id="2174" />
-<extraparam>
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="2216" >
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5106" id="2177" >
 <father id="2341" num="2" />
-<cdparam x="855" y="587" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="541" minY="0" maxY="391" />
-<infoparam name="state0" value="OPEN" />
-<TGConnectingPoint num="0" id="2176" />
-<TGConnectingPoint num="1" id="2177" />
-<TGConnectingPoint num="2" id="2178" />
-<TGConnectingPoint num="3" id="2179" />
-<TGConnectingPoint num="4" id="2180" />
-<TGConnectingPoint num="5" id="2181" />
-<TGConnectingPoint num="6" id="2182" />
-<TGConnectingPoint num="7" id="2183" />
-<TGConnectingPoint num="8" id="2184" />
-<TGConnectingPoint num="9" id="2185" />
-<TGConnectingPoint num="10" id="2186" />
-<TGConnectingPoint num="11" id="2187" />
-<TGConnectingPoint num="12" id="2188" />
-<TGConnectingPoint num="13" id="2189" />
-<TGConnectingPoint num="14" id="2190" />
-<TGConnectingPoint num="15" id="2191" />
-<TGConnectingPoint num="16" id="2192" />
-<TGConnectingPoint num="17" id="2193" />
-<TGConnectingPoint num="18" id="2194" />
-<TGConnectingPoint num="19" id="2195" />
-<TGConnectingPoint num="20" id="2196" />
-<TGConnectingPoint num="21" id="2197" />
-<TGConnectingPoint num="22" id="2198" />
-<TGConnectingPoint num="23" id="2199" />
-<TGConnectingPoint num="24" id="2200" />
-<TGConnectingPoint num="25" id="2201" />
-<TGConnectingPoint num="26" id="2202" />
-<TGConnectingPoint num="27" id="2203" />
-<TGConnectingPoint num="28" id="2204" />
-<TGConnectingPoint num="29" id="2205" />
-<TGConnectingPoint num="30" id="2206" />
-<TGConnectingPoint num="31" id="2207" />
-<TGConnectingPoint num="32" id="2208" />
-<TGConnectingPoint num="33" id="2209" />
-<TGConnectingPoint num="34" id="2210" />
-<TGConnectingPoint num="35" id="2211" />
-<TGConnectingPoint num="36" id="2212" />
-<TGConnectingPoint num="37" id="2213" />
-<TGConnectingPoint num="38" id="2214" />
-<TGConnectingPoint num="39" id="2215" />
-<extraparam>
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="2257" >
-<father id="2341" num="3" />
 <cdparam x="559" y="595" />
 <sizeparam width="198" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="443" minY="0" maxY="391" />
 <infoparam name="state0" value="FAULT_AND_OPEN" />
-<TGConnectingPoint num="0" id="2217" />
-<TGConnectingPoint num="1" id="2218" />
-<TGConnectingPoint num="2" id="2219" />
-<TGConnectingPoint num="3" id="2220" />
-<TGConnectingPoint num="4" id="2221" />
-<TGConnectingPoint num="5" id="2222" />
-<TGConnectingPoint num="6" id="2223" />
-<TGConnectingPoint num="7" id="2224" />
-<TGConnectingPoint num="8" id="2225" />
-<TGConnectingPoint num="9" id="2226" />
-<TGConnectingPoint num="10" id="2227" />
-<TGConnectingPoint num="11" id="2228" />
-<TGConnectingPoint num="12" id="2229" />
-<TGConnectingPoint num="13" id="2230" />
-<TGConnectingPoint num="14" id="2231" />
-<TGConnectingPoint num="15" id="2232" />
-<TGConnectingPoint num="16" id="2233" />
-<TGConnectingPoint num="17" id="2234" />
-<TGConnectingPoint num="18" id="2235" />
-<TGConnectingPoint num="19" id="2236" />
-<TGConnectingPoint num="20" id="2237" />
-<TGConnectingPoint num="21" id="2238" />
-<TGConnectingPoint num="22" id="2239" />
-<TGConnectingPoint num="23" id="2240" />
-<TGConnectingPoint num="24" id="2241" />
-<TGConnectingPoint num="25" id="2242" />
-<TGConnectingPoint num="26" id="2243" />
-<TGConnectingPoint num="27" id="2244" />
-<TGConnectingPoint num="28" id="2245" />
-<TGConnectingPoint num="29" id="2246" />
-<TGConnectingPoint num="30" id="2247" />
-<TGConnectingPoint num="31" id="2248" />
-<TGConnectingPoint num="32" id="2249" />
-<TGConnectingPoint num="33" id="2250" />
-<TGConnectingPoint num="34" id="2251" />
-<TGConnectingPoint num="35" id="2252" />
-<TGConnectingPoint num="36" id="2253" />
-<TGConnectingPoint num="37" id="2254" />
-<TGConnectingPoint num="38" id="2255" />
-<TGConnectingPoint num="39" id="2256" />
-<extraparam>
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="2259" >
+<TGConnectingPoint num="0" id="2137" />
+<TGConnectingPoint num="1" id="2138" />
+<TGConnectingPoint num="2" id="2139" />
+<TGConnectingPoint num="3" id="2140" />
+<TGConnectingPoint num="4" id="2141" />
+<TGConnectingPoint num="5" id="2142" />
+<TGConnectingPoint num="6" id="2143" />
+<TGConnectingPoint num="7" id="2144" />
+<TGConnectingPoint num="8" id="2145" />
+<TGConnectingPoint num="9" id="2146" />
+<TGConnectingPoint num="10" id="2147" />
+<TGConnectingPoint num="11" id="2148" />
+<TGConnectingPoint num="12" id="2149" />
+<TGConnectingPoint num="13" id="2150" />
+<TGConnectingPoint num="14" id="2151" />
+<TGConnectingPoint num="15" id="2152" />
+<TGConnectingPoint num="16" id="2153" />
+<TGConnectingPoint num="17" id="2154" />
+<TGConnectingPoint num="18" id="2155" />
+<TGConnectingPoint num="19" id="2156" />
+<TGConnectingPoint num="20" id="2157" />
+<TGConnectingPoint num="21" id="2158" />
+<TGConnectingPoint num="22" id="2159" />
+<TGConnectingPoint num="23" id="2160" />
+<TGConnectingPoint num="24" id="2161" />
+<TGConnectingPoint num="25" id="2162" />
+<TGConnectingPoint num="26" id="2163" />
+<TGConnectingPoint num="27" id="2164" />
+<TGConnectingPoint num="28" id="2165" />
+<TGConnectingPoint num="29" id="2166" />
+<TGConnectingPoint num="30" id="2167" />
+<TGConnectingPoint num="31" id="2168" />
+<TGConnectingPoint num="32" id="2169" />
+<TGConnectingPoint num="33" id="2170" />
+<TGConnectingPoint num="34" id="2171" />
+<TGConnectingPoint num="35" id="2172" />
+<TGConnectingPoint num="36" id="2173" />
+<TGConnectingPoint num="37" id="2174" />
+<TGConnectingPoint num="38" id="2175" />
+<TGConnectingPoint num="39" id="2176" />
+<extraparam>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5106" id="2218" >
+<father id="2341" num="3" />
+<cdparam x="855" y="587" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="541" minY="0" maxY="391" />
+<infoparam name="state0" value="OPEN" />
+<TGConnectingPoint num="0" id="2178" />
+<TGConnectingPoint num="1" id="2179" />
+<TGConnectingPoint num="2" id="2180" />
+<TGConnectingPoint num="3" id="2181" />
+<TGConnectingPoint num="4" id="2182" />
+<TGConnectingPoint num="5" id="2183" />
+<TGConnectingPoint num="6" id="2184" />
+<TGConnectingPoint num="7" id="2185" />
+<TGConnectingPoint num="8" id="2186" />
+<TGConnectingPoint num="9" id="2187" />
+<TGConnectingPoint num="10" id="2188" />
+<TGConnectingPoint num="11" id="2189" />
+<TGConnectingPoint num="12" id="2190" />
+<TGConnectingPoint num="13" id="2191" />
+<TGConnectingPoint num="14" id="2192" />
+<TGConnectingPoint num="15" id="2193" />
+<TGConnectingPoint num="16" id="2194" />
+<TGConnectingPoint num="17" id="2195" />
+<TGConnectingPoint num="18" id="2196" />
+<TGConnectingPoint num="19" id="2197" />
+<TGConnectingPoint num="20" id="2198" />
+<TGConnectingPoint num="21" id="2199" />
+<TGConnectingPoint num="22" id="2200" />
+<TGConnectingPoint num="23" id="2201" />
+<TGConnectingPoint num="24" id="2202" />
+<TGConnectingPoint num="25" id="2203" />
+<TGConnectingPoint num="26" id="2204" />
+<TGConnectingPoint num="27" id="2205" />
+<TGConnectingPoint num="28" id="2206" />
+<TGConnectingPoint num="29" id="2207" />
+<TGConnectingPoint num="30" id="2208" />
+<TGConnectingPoint num="31" id="2209" />
+<TGConnectingPoint num="32" id="2210" />
+<TGConnectingPoint num="33" id="2211" />
+<TGConnectingPoint num="34" id="2212" />
+<TGConnectingPoint num="35" id="2213" />
+<TGConnectingPoint num="36" id="2214" />
+<TGConnectingPoint num="37" id="2215" />
+<TGConnectingPoint num="38" id="2216" />
+<TGConnectingPoint num="39" id="2217" />
+<extraparam>
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5106" id="2259" >
 <father id="2341" num="4" />
-<cdparam x="829" y="325" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="938" y="469" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="626" minY="0" maxY="426" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="2258" />
+<cdrectangleparam minX="0" maxX="541" minY="0" maxY="391" />
+<infoparam name="state0" value="FAULT" />
+<TGConnectingPoint num="0" id="2219" />
+<TGConnectingPoint num="1" id="2220" />
+<TGConnectingPoint num="2" id="2221" />
+<TGConnectingPoint num="3" id="2222" />
+<TGConnectingPoint num="4" id="2223" />
+<TGConnectingPoint num="5" id="2224" />
+<TGConnectingPoint num="6" id="2225" />
+<TGConnectingPoint num="7" id="2226" />
+<TGConnectingPoint num="8" id="2227" />
+<TGConnectingPoint num="9" id="2228" />
+<TGConnectingPoint num="10" id="2229" />
+<TGConnectingPoint num="11" id="2230" />
+<TGConnectingPoint num="12" id="2231" />
+<TGConnectingPoint num="13" id="2232" />
+<TGConnectingPoint num="14" id="2233" />
+<TGConnectingPoint num="15" id="2234" />
+<TGConnectingPoint num="16" id="2235" />
+<TGConnectingPoint num="17" id="2236" />
+<TGConnectingPoint num="18" id="2237" />
+<TGConnectingPoint num="19" id="2238" />
+<TGConnectingPoint num="20" id="2239" />
+<TGConnectingPoint num="21" id="2240" />
+<TGConnectingPoint num="22" id="2241" />
+<TGConnectingPoint num="23" id="2242" />
+<TGConnectingPoint num="24" id="2243" />
+<TGConnectingPoint num="25" id="2244" />
+<TGConnectingPoint num="26" id="2245" />
+<TGConnectingPoint num="27" id="2246" />
+<TGConnectingPoint num="28" id="2247" />
+<TGConnectingPoint num="29" id="2248" />
+<TGConnectingPoint num="30" id="2249" />
+<TGConnectingPoint num="31" id="2250" />
+<TGConnectingPoint num="32" id="2251" />
+<TGConnectingPoint num="33" id="2252" />
+<TGConnectingPoint num="34" id="2253" />
+<TGConnectingPoint num="35" id="2254" />
+<TGConnectingPoint num="36" id="2255" />
+<TGConnectingPoint num="37" id="2256" />
+<TGConnectingPoint num="38" id="2257" />
+<TGConnectingPoint num="39" id="2258" />
+<extraparam>
+</extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5106" id="2300" >
 <father id="2341" num="5" />
-<cdparam x="775" y="387" />
+<cdparam x="568" y="455" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="541" minY="0" maxY="391" />
-<infoparam name="state0" value="Test" />
+<infoparam name="state0" value="IDLE" />
 <TGConnectingPoint num="0" id="2260" />
 <TGConnectingPoint num="1" id="2261" />
 <TGConnectingPoint num="2" id="2262" />
diff --git a/src/main/java/common/ConfigurationTTool.java b/src/main/java/common/ConfigurationTTool.java
index aadfb8ad8f46f98e75aa0fd16b1177a04c3b7092..c847acf7ceab961d46d8225b8437ffa31ac1dc12 100755
--- a/src/main/java/common/ConfigurationTTool.java
+++ b/src/main/java/common/ConfigurationTTool.java
@@ -164,6 +164,8 @@ public class ConfigurationTTool {
 
     public static String LastOpenFile = "";
     public static boolean LastOpenFileDefined = false;
+    public static int NB_LAST_OPEN_FILE = 10;
+    public static String [] LastOpenFiles = new String[NB_LAST_OPEN_FILE];
 
     public static String LastWindowAttributesX = "", LastWindowAttributesY = "";
     public static String LastWindowAttributesWidth = "", LastWindowAttributesHeight = "";
@@ -223,7 +225,25 @@ public class ConfigurationTTool {
         }
 
 
-        index0 = data.indexOf("LastOpenFile");
+
+        while ( (index0 = data.indexOf("<LastOpenFile")) != -1) {
+            index1 = data.indexOf("/>", index0+1);
+            if (index1 == -1) {
+                break; // pb in the configuration?
+            }
+            data = data.substring(0, index0) + data.substring(index1+2, data.length());
+        }
+
+        index0 = data.indexOf("</TURTLECONFIGURATION>");
+        String toBeAdded = "";
+        // Adding configuration there
+        for(int i=0; i<LastOpenFiles.length; i++) {
+            String file = LastOpenFiles[i];
+            if ((file != null) && (file.length() > 0)) {
+                toBeAdded = toBeAdded + "<LastOpenFile data=\"" + file + "\" />\n";
+            }
+        }
+        data = data.substring(0, index0-1) + toBeAdded + data.substring(index0, data.length());
 
         //sb.append("data = " + data + " ConfigurationTTool.LastOpenFile=" + ConfigurationTTool.LastOpenFile);
 
@@ -493,7 +513,14 @@ public class ConfigurationTTool {
         sb.append("ExternalCommand2: " + ExternalCommand2 + "\n");
 
         sb.append("\nInformation saved by TTool:\n");
-        sb.append("LastOpenFile: " + LastOpenFile + "\n");
+
+        if (LastOpenFiles != null) {
+            for(int i=0; i<LastOpenFiles.length; i++) {
+                if (LastOpenFiles[i] != null) {
+                    sb.append("LastOpenFile #" + i + ": " + LastOpenFiles[i] + "\n");
+                }
+            }
+        }
         sb.append("LastWindowAttributesX: " + LastWindowAttributesX + "\n");
         sb.append("LastWindowAttributesY: " + LastWindowAttributesY + "\n");
         sb.append("LastWindowAttributesWidth: ").append(LastWindowAttributesWidth).append("\n");
@@ -795,6 +822,10 @@ public class ConfigurationTTool {
             if (nl.getLength() > 0)
                 URLModel(nl);
 
+
+            for(int i=0;i<NB_LAST_OPEN_FILE; i++) {
+                LastOpenFiles[i] = "";
+            }
             nl = doc.getElementsByTagName("LastOpenFile");
             if (nl.getLength() > 0)
                 LastOpenFile(nl);
@@ -1558,9 +1589,14 @@ public class ConfigurationTTool {
 
     private static void LastOpenFile(NodeList nl) throws MalformedConfigurationException {
         try {
-            Element elt = (Element) (nl.item(0));
-            LastOpenFile = elt.getAttribute("data");
-            LastOpenFileDefined = true;
+            for(int i=0; i<Math.min(nl.getLength(), NB_LAST_OPEN_FILE); i++) {
+                Element elt = (Element) (nl.item(i));
+                if (i == 0) {
+                    LastOpenFile = elt.getAttribute("data");
+                    LastOpenFileDefined = true;
+                }
+                LastOpenFiles[i] = elt.getAttribute("data");
+            }
         } catch (Exception e) {
             throw new MalformedConfigurationException(e.getMessage());
         }
@@ -1603,4 +1639,29 @@ public class ConfigurationTTool {
         return ((s != null) && (s.trim().length() > 0));
     }
 
+    public static void decLastFiles() {
+        String[] tmp = new String[NB_LAST_OPEN_FILE];
+        String[] tmp1 = new String[NB_LAST_OPEN_FILE];
+        for(int i=0; i<NB_LAST_OPEN_FILE; i++) {
+            tmp[i] = LastOpenFiles[i];
+        }
+
+        for (int j=0;j<NB_LAST_OPEN_FILE; j++) {
+            tmp1[j] = "";
+            LastOpenFiles[j] = "";
+        }
+
+        int cpt = 0;
+        for(int k=0; k<NB_LAST_OPEN_FILE; k++) {
+            if (tmp[k].length() > 0) {
+                tmp1[cpt] = tmp[k];
+                cpt ++;
+            }
+        }
+
+        for(int l=NB_LAST_OPEN_FILE-1; l>0; l--) {
+            LastOpenFiles[l] = tmp1[l-1];
+        }
+    }
+
 } //
diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java
index 6f318d57277391fc51c4084ebb7b439ded20787c..e9c1902c1b0147b80e53b12aafa1dc9e8565b422 100755
--- a/src/main/java/ui/ActionPerformer.java
+++ b/src/main/java/ui/ActionPerformer.java
@@ -1063,6 +1063,15 @@ public class ActionPerformer {
             JOptionPane.showMessageDialog(mgui.getFrame(), "In Port: Color CYAN\nOut Port: Color LIGHT GRAY", "Help color of the ports", JOptionPane.INFORMATION_MESSAGE);
         }   else if (command.endsWith(".dot")) {
             mgui.viewAutomata(command);
+
+            // Last open
+        } else {
+            for(int i=0; i<mgui.actionsLast.length; i++) {
+                if (command.equals(mgui.actionsLast[i].getActionCommand())) {
+                    mgui.openLastProject(i);
+                    break;
+                }
+            }
         }
     }
 }
diff --git a/src/main/java/ui/JMenuBarTurtle.java b/src/main/java/ui/JMenuBarTurtle.java
index 14c526c4273a7c7616479b986699cf951303f04d..abebd2d2825b16403d04a3c5ac1f6b884bcacb68 100755
--- a/src/main/java/ui/JMenuBarTurtle.java
+++ b/src/main/java/ui/JMenuBarTurtle.java
@@ -41,6 +41,7 @@ package ui;
 
 import common.ConfigurationTTool;
 import common.SpecConfigTTool;
+import myutil.TraceManager;
 
 import javax.swing.*;
 //import javax.swing.event.*;
@@ -79,20 +80,11 @@ public class JMenuBarTurtle extends JMenuBar {
     }
 
 
-    // Menus
-    private void buildMenus(MainGUI mgui) {
-        // Main menu
-        file = new JMenu("File");
-        edit = new JMenu("Edit");
-        diagram = new JMenu("Diagram");
-        vAndV = new JMenu("V&V");
-        codeG = new JMenu("Code Generation");
-        view = new JMenu("View");
-        tool = new JMenu("Tool");
-        help = new JMenu("Help");
-
+    public void makeFileMenu(MainGUI mgui) {
         JMenuItem menuItem;
 
+        file.removeAll();
+
         // FILE
         menuItem = file.add(mgui.actions[TGUIAction.ACT_NEW]);
         menuItem.addMouseListener(mgui.mouseHandler);
@@ -158,15 +150,36 @@ public class JMenuBarTurtle extends JMenuBar {
 
         if (ConfigurationTTool.LastOpenFileDefined) {
             file.addSeparator();
-
-            menuItem = file.add(mgui.actions[TGUIAction.ACT_OPEN_LAST]);
-            menuItem.addMouseListener(mgui.mouseHandler);
+            for(int i=0; i<ConfigurationTTool.LastOpenFiles.length;i++){
+                //TraceManager.addDev("Considering last open file: " + ConfigurationTTool.LastOpenFiles[i]);
+                if ((ConfigurationTTool.LastOpenFiles[i] != null) && (ConfigurationTTool.LastOpenFiles[i].length() > 0)) {
+                    menuItem = file.add(mgui.actionsLast[i]);
+                    menuItem.addMouseListener(mgui.mouseHandler);
+                }
+            }
         }
 
         file.addSeparator();
 
         menuItem = file.add(mgui.actions[TGUIAction.ACT_QUIT]);
         menuItem.addMouseListener(mgui.mouseHandler);
+    }
+
+    // Menus
+    private void buildMenus(MainGUI mgui) {
+        // Main menu
+        file = new JMenu("File");
+        edit = new JMenu("Edit");
+        diagram = new JMenu("Diagram");
+        vAndV = new JMenu("V&V");
+        codeG = new JMenu("Code Generation");
+        view = new JMenu("View");
+        tool = new JMenu("Tool");
+        help = new JMenu("Help");
+
+        JMenuItem menuItem;
+
+        makeFileMenu(mgui);
 
         //Edit
         menuItem = edit.add(mgui.actions[TGUIAction.ACT_CUT]);
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 2224574834ddea0dcd0eb411b5a8bea13de91414..8e97473bc81a9bc49c34baee5653872426322f0d 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -167,6 +167,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
 
     // Actions
     public TGUIAction[] actions;
+    public TGUIAction[] actionsLast;
     public MouseHandler mouseHandler;
     public KeyListener keyHandler;
 
@@ -558,6 +559,16 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             actions[i].addActionListener(this);
             //actions[i].addKeyListener(this);
         }
+        actionsLast = new TGUIAction[ConfigurationTTool.NB_LAST_OPEN_FILE];
+        for (int j = 0; j < actionsLast.length; j++) {
+            actionsLast[j] = new TGUIAction(TGUIAction.ACT_OPEN_LAST, "Open recent: " + ConfigurationTTool.LastOpenFiles[j]);
+            actionsLast[j].addActionListener(this);
+            //actions[i].addKeyListener(this);
+        }
+        if (jmenubarturtle != null) {
+            jmenubarturtle.makeFileMenu(this);
+        }
+
     }
 
     public String getTitle() {
@@ -2369,6 +2380,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
 
     public void updateLastOpenFile(File file) {
         if (ConfigurationTTool.LastOpenFileDefined) {
+
+
             ConfigurationTTool.LastOpenFile = file.getPath();
             if (ConfigurationTTool.LastOpenFile.contains(".ttool" + File.separator)) {
                 int last = 0;
@@ -2380,6 +2393,29 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             }
             // Change name of action
             actions[TGUIAction.ACT_OPEN_LAST].setName(TGUIAction.ACT_OPEN_LAST, ConfigurationTTool.LastOpenFile);
+
+            // is the new name already in the list of opened files?
+            for(int i=0; i<ConfigurationTTool.LastOpenFiles.length; i++) {
+                if (ConfigurationTTool.LastOpenFiles[i].compareTo(ConfigurationTTool.LastOpenFile) == 0) {
+                    ConfigurationTTool.LastOpenFiles[i] = "";
+                }
+            }
+
+            // Dec all files
+            ConfigurationTTool.decLastFiles();
+            ConfigurationTTool.LastOpenFiles[0] = ConfigurationTTool.LastOpenFile;
+
+            // We need to update the actions
+            for (int j = 0; j < actionsLast.length; j++) {
+                actionsLast[j] = new TGUIAction(TGUIAction.ACT_OPEN_LAST, "Open recent: " + ConfigurationTTool.LastOpenFiles[j]);
+                actionsLast[j].addActionListener(this);
+                //actions[i].addKeyListener(this);
+            }
+
+            if (jmenubarturtle != null) {
+                jmenubarturtle.makeFileMenu(this);
+            }
+
         }
     }
 
@@ -2666,6 +2702,10 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     }
 
     public void openLastProject() {
+        openLastProject(0);
+    }
+
+    public void openLastProject(int id) {
         // Check if a current modeling is opened
         boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
         if (b) {
@@ -2674,7 +2714,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             }
         }
 
-        file = new File(ConfigurationTTool.LastOpenFile);
+        file = new File(ConfigurationTTool.LastOpenFiles[id]);
 
         if (checkFileForOpen(file)) {
             String s = null;
@@ -2724,6 +2764,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             gtm.enableUndo(false);
 
             // Issue #41: Moved to common method
+            updateLastOpenFile(file);
             loadModels(s, "loaded");
             //TraceManager.addDev("Loading");
             // load the new TURTLE modeling
diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java
index a6dd944a4ef918c587bca73a59242822d0555595..7e9541f546d6d81b1c3dfd6b6181742a65195675 100755
--- a/src/main/java/ui/TGUIAction.java
+++ b/src/main/java/ui/TGUIAction.java
@@ -655,6 +655,41 @@ public class TGUIAction extends AbstractAction {
         putValue(Action.LONG_DESCRIPTION, _t.LONG_DESCRIPTION);
     }
 
+    public TGUIAction(int id, String name) {
+        if (actions[0] == null) {
+            init();
+        }
+        if (actions[id] == null) {
+            return ;
+        }
+
+        putValue(Action.ACTION_COMMAND_KEY, name);
+
+        putValue(Action.NAME, name);
+        putValue(Action.SMALL_ICON, actions[id].SMALL_ICON);
+        putValue(LARGE_ICON, actions[id].LARGE_ICON);
+        putValue(Action.SHORT_DESCRIPTION, name);
+        putValue(Action.LONG_DESCRIPTION, name);
+        //putValue(Action.MNEMONIC_KEY, new Integer(actions[id].MNEMONIC_KEY));
+        if (actions[id].MNEMONIC_KEY != 0) {
+            if (actions[id].hasControl) {
+                putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(actions[id].KEY, java.awt.event.InputEvent.CTRL_MASK));
+            } else {
+                if ((actions[id].MNEMONIC_KEY >= 37 && actions[id].MNEMONIC_KEY <= 40) || actions[id].MNEMONIC_KEY == KeyEvent.VK_DELETE) //handling for arrow and delete keys
+                    putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(actions[id].MNEMONIC_KEY, 0));
+                else
+                    putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(actions[id].KEY));
+            }
+        }
+
+        if ((id == EXTERNAL_ACTION_1) && (ConfigurationTTool.ExternalCommand1 != null) && (ConfigurationTTool.ExternalCommand1.length()) > 0) {
+            setLongDescription(EXTERNAL_ACTION_1, ConfigurationTTool.ExternalCommand1);
+        }
+        if ((id == EXTERNAL_ACTION_2) && (ConfigurationTTool.ExternalCommand2 != null) && (ConfigurationTTool.ExternalCommand2.length()) > 0) {
+            setLongDescription(EXTERNAL_ACTION_2, ConfigurationTTool.ExternalCommand2);
+        }
+    }
+
     public TGUIAction(int id) {
         if (actions[0] == null) {
             init();
@@ -663,6 +698,7 @@ public class TGUIAction extends AbstractAction {
             return ;
         }
 
+
         putValue(Action.NAME, actions[id].NAME);
         putValue(Action.SMALL_ICON, actions[id].SMALL_ICON);
         putValue(LARGE_ICON, actions[id].LARGE_ICON);