diff --git a/modeling/DIPLODOCUS/SmartCardProtocol.xml b/modeling/DIPLODOCUS/SmartCardProtocol.xml
index 8b6f22e709cad5f4f43ff9e191426e3548b47100..8d2411572f479310be0e30df608763c27030b508 100755
--- a/modeling/DIPLODOCUS/SmartCardProtocol.xml
+++ b/modeling/DIPLODOCUS/SmartCardProtocol.xml
@@ -8,16 +8,16 @@
 <cdparam x="535" y="347" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="556" y="321" id="169" />
-<P2  x="534" y="395" id="216" />
+<P1  x="556" y="347" id="169" />
+<P2  x="547" y="382" id="216" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="3" >
 <cdparam x="820" y="398" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1025" y="471" id="63" />
-<P2  x="761" y="548" id="184" />
+<P1  x="1025" y="497" id="63" />
+<P2  x="761" y="574" id="184" />
 <Point x="887" y="577" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="2" >
@@ -34,15 +34,15 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="710" y="403" id="186" />
-<P2  x="693" y="321" id="147" />
+<P2  x="693" y="347" id="147" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="5" >
 <cdparam x="522" y="390" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="534" y="369" id="211" />
-<P2  x="453" y="322" id="41" />
+<P1  x="521" y="382" id="211" />
+<P2  x="466" y="335" id="41" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6" >
@@ -57,16 +57,16 @@
 <cdparam x="656" y="426" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="542" id="190" />
-<P2  x="969" y="474" id="77" />
+<P1  x="816" y="552" id="190" />
+<P2  x="969" y="495" id="77" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="8" >
 <cdparam x="656" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="509" id="192" />
-<P2  x="931" y="466" id="75" />
+<P1  x="816" y="519" id="192" />
+<P2  x="921" y="476" id="75" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="9" >
@@ -74,126 +74,126 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="751" y="406" id="200" />
-<P2  x="842" y="362" id="105" />
+<P2  x="829" y="375" id="105" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="10" >
 <cdparam x="689" y="292" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="842" y="388" id="109" />
-<P2  x="931" y="352" id="85" />
+<P1  x="855" y="375" id="109" />
+<P2  x="921" y="362" id="85" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="11" >
 <cdparam x="656" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="481" id="196" />
-<P2  x="931" y="443" id="83" />
+<P1  x="816" y="491" id="196" />
+<P2  x="921" y="453" id="83" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="12" >
 <cdparam x="656" y="351" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="448" id="194" />
-<P2  x="931" y="416" id="81" />
+<P1  x="816" y="458" id="194" />
+<P2  x="921" y="426" id="81" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="13" >
 <cdparam x="741" y="296" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="931" y="387" id="79" />
-<P2  x="805" y="419" id="198" />
+<P1  x="921" y="397" id="79" />
+<P2  x="816" y="429" id="198" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="14" >
 <cdparam x="735" y="260" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="931" y="317" id="87" />
-<P2  x="734" y="269" id="159" />
+<P1  x="918" y="330" id="87" />
+<P2  x="747" y="282" id="159" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="15" >
 <cdparam x="641" y="230" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="734" y="235" id="157" />
-<P2  x="931" y="278" id="89" />
+<P1  x="747" y="248" id="157" />
+<P2  x="918" y="291" id="89" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="16" >
 <cdparam x="641" y="195" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="734" y="190" id="155" />
-<P2  x="931" y="235" id="91" />
+<P1  x="747" y="203" id="155" />
+<P2  x="918" y="248" id="91" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="17" >
 <cdparam x="740" y="353" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="842" y="362" id="104" />
-<P2  x="734" y="301" id="153" />
+<P1  x="829" y="375" id="104" />
+<P2  x="747" y="314" id="153" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="18" >
 <cdparam x="460" y="270" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="534" y="290" id="163" />
-<P2  x="453" y="290" id="35" />
+<P1  x="521" y="303" id="163" />
+<P2  x="466" y="303" id="35" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="19" >
 <cdparam x="387" y="129" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="453" y="116" id="31" />
-<P2  x="534" y="116" id="151" />
+<P1  x="464" y="126" id="31" />
+<P2  x="524" y="126" id="151" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="20" >
 <cdparam x="389" y="200" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="453" y="202" id="37" />
-<P2  x="534" y="202" id="165" />
+<P1  x="466" y="215" id="37" />
+<P2  x="521" y="215" id="165" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="21" >
 <cdparam x="460" y="236" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="534" y="247" id="167" />
-<P2  x="453" y="247" id="39" />
+<P1  x="521" y="260" id="167" />
+<P2  x="466" y="260" id="39" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="22" >
 <cdparam x="389" y="163" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="453" y="156" id="33" />
-<P2  x="534" y="156" id="161" />
+<P1  x="466" y="169" id="33" />
+<P2  x="521" y="169" id="161" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="23" >
 <cdparam x="967" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="931" y="185" id="93" />
-<P2  x="734" y="111" id="173" />
+<P1  x="918" y="198" id="93" />
+<P2  x="747" y="124" id="173" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="24" >
 <cdparam x="1028" y="535" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="630" y="324" id="149" />
+<P1  x="630" y="345" id="149" />
 <P2  x="669" y="406" id="188" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -201,24 +201,24 @@
 <cdparam x="1308" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1232" y="368" id="127" />
-<P2  x="1167" y="370" id="73" />
+<P1  x="1222" y="378" id="127" />
+<P2  x="1178" y="380" id="73" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="26" >
 <cdparam x="1172" y="437" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1167" y="405" id="71" />
-<P2  x="1232" y="403" id="125" />
+<P1  x="1178" y="415" id="71" />
+<P2  x="1222" y="413" id="125" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="29" >
 <cdparam x="1041" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1167" y="198" id="69" />
-<P2  x="1167" y="266" id="67" />
+<P1  x="1178" y="208" id="69" />
+<P2  x="1178" y="276" id="67" />
 <Point x="1227" y="207" />
 <Point x="1227" y="247" />
 <AutomaticDrawing  data="true" />
@@ -243,8 +243,8 @@
 <cdparam x="877" y="343" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1167" y="444" id="65" />
-<P2  x="1232" y="431" id="123" />
+<P1  x="1178" y="454" id="65" />
+<P2  x="1222" y="441" id="123" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1202" id="53" >
@@ -5821,7 +5821,7 @@ On prend b=1 comme exemple
 
 <COMPONENT type="301" id="1297" >
 <cdparam x="453" y="214" />
-<sizeparam width="105" height="20" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="105" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="UML Note" value="data exchange
@@ -7014,7 +7014,7 @@ On prend b=1 comme exemple
 </SUBCOMPONENT>
 
 <COMPONENT type="1100" id="1717" >
-<cdparam x="267" y="59" />
+<cdparam x="266" y="59" />
 <sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -7050,7 +7050,7 @@ On prend b=1 comme exemple
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="1674" >
 <father id="1717" num="0" />
-<cdparam x="277" y="90" />
+<cdparam x="276" y="90" />
 <sizeparam width="108" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="164" minY="0" maxY="127" />
@@ -7069,7 +7069,7 @@ On prend b=1 comme exemple
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="1683" >
 <father id="1717" num="1" />
-<cdparam x="293" y="165" />
+<cdparam x="292" y="165" />
 <sizeparam width="139" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="133" minY="0" maxY="127" />
@@ -7088,7 +7088,7 @@ On prend b=1 comme exemple
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="1692" >
 <father id="1717" num="2" />
-<cdparam x="392" y="119" />
+<cdparam x="391" y="119" />
 <sizeparam width="136" height="37" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="136" minY="0" maxY="130" />
@@ -7146,7 +7146,7 @@ On prend b=1 comme exemple
 <cdparam x="388" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from CPU0 to Bus0" value="{info}" />
-<P1  x="403" y="226" id="1699" />
+<P1  x="402" y="226" id="1699" />
 <P2  x="403" y="269" id="1608" />
 <AutomaticDrawing  data="true" />
 <extraparam>
diff --git a/src/main/java/avatartranslator/AvatarArithmeticOp.java b/src/main/java/avatartranslator/AvatarArithmeticOp.java
index c439b3ceda8b6cb601c4344f6d5b36a66480db1b..41bacaf9576b967342d70b2f57ea32d754af3d7b 100644
--- a/src/main/java/avatartranslator/AvatarArithmeticOp.java
+++ b/src/main/java/avatartranslator/AvatarArithmeticOp.java
@@ -51,7 +51,7 @@ public class AvatarArithmeticOp extends AvatarTerm {
     AvatarTerm term2;
     String operator;
 
-    private static final String [] knownOp = {"+", "-"};
+    private static final String [] knownOp = {"+", "-", "*"};
 
     public AvatarArithmeticOp (AvatarTerm _term1, AvatarTerm _term2, String _operator, Object _referenceObject) {
         super (_term1.getName () + _operator + _term2.getName (), _referenceObject);
diff --git a/src/main/java/avatartranslator/AvatarGuard.java b/src/main/java/avatartranslator/AvatarGuard.java
index 393cf8bb70dc61b0ae0dfb4b6a7b738e2ef796fa..b4941240b296aa19ebb33c04453c9ff077fe9a9b 100644
--- a/src/main/java/avatartranslator/AvatarGuard.java
+++ b/src/main/java/avatartranslator/AvatarGuard.java
@@ -51,7 +51,7 @@ import myutil.TraceManager;
  */
 public abstract class AvatarGuard {
 
-    private static int getMatchingRParen (String s, int indexLParen) {
+    public static int getMatchingRParen (String s, int indexLParen) {
         int index, n;
         n = 1;
         for (index = indexLParen+1; index < s.length (); index++) {
diff --git a/src/main/java/avatartranslator/AvatarTerm.java b/src/main/java/avatartranslator/AvatarTerm.java
index 45d9b5dfaae6b52e59a3893fca590d87388bd68b..a717897fdb4ec2eef141d05c276cad66a9b681cd 100644
--- a/src/main/java/avatartranslator/AvatarTerm.java
+++ b/src/main/java/avatartranslator/AvatarTerm.java
@@ -66,33 +66,48 @@ public abstract class AvatarTerm extends AvatarElement {
         if (toParse == null || toParse.isEmpty ())
             return null;
 
+       // TraceManager.addDev("toParse:" + toParse);
+
         AvatarTerm result = AvatarTermFunction.createFromString (block, toParse);
-        if (result != null)
+        if (result != null) {
+            //TraceManager.addDev("Result1=" + result);
             return result;
+        }
+
 
         result = AvatarTuple.createFromString (block, toParse);
-        if (result != null)
+        if (result != null) {
+           //TraceManager.addDev("Parsed:" + toParse);
+            //TraceManager.addDev("Result2=" + result);
             return result;
+        }
 
         result = AvatarArithmeticOp.createFromString (block, toParse);
-        if (result != null)
+        if (result != null) {
+            //TraceManager.addDev("Result3=" + result);
             return result;
+        }
 
         toParse = toParse.trim ();
         result = block.getAvatarAttributeWithName (toParse);
-        if (result != null)
+        if (result != null) {
+            //TraceManager.addDev("Result4=" + result);
             return result;
+        }
         // TraceManager.addDev ("AvatarAttribute '" + toParse + "' couldn't be parsed");
 
         result = block.getAvatarSpecification ().getAvatarConstantWithName (toParse);
-        if (result != null)
+        if (result != null) {
+            //TraceManager.addDev("Result5=" + result);
             return result;
+        }
 
         try {
             // TODO: replace that by a true AvatarNumeric
             //int i = Integer.parseInt (toParse);
             result = new AvatarConstant (toParse, block);
             block.getAvatarSpecification ().addConstant ((AvatarConstant) result);
+            //TraceManager.addDev("Result6=" + result);
             return result;
         } catch (NumberFormatException e) { }
 
@@ -100,12 +115,14 @@ public abstract class AvatarTerm extends AvatarElement {
         if (AvatarTerm.isValidName (toParse)) {
             result = new AvatarConstant (toParse, block);
             block.getAvatarSpecification ().addConstant ((AvatarConstant) result);
+            //TraceManager.addDev("Result7=" + result);
             return result;
         }
         //TraceManager.addDev ("AvatarConstant '" + toParse + "' couldn't be parsed");
 
         //TraceManager.addDev ("AvatarTerm '" + toParse + "' couldn't be parsed");
         //if (allowRaw)
+        //TraceManager.addDev("Result7: return new term");
             return new AvatarTermRaw (toParse, block);
 	    //else
             //return null;
diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java
index 257b17e8f9a9fc55d5000221fcefa80648eb3a5e..81a395fe07826c3b907fdced78fa762e077ddec2 100644
--- a/src/main/java/avatartranslator/AvatarTransition.java
+++ b/src/main/java/avatartranslator/AvatarTransition.java
@@ -38,6 +38,8 @@
 
 package avatartranslator;
 
+import myutil.TraceManager;
+
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -204,14 +206,16 @@ public class AvatarTransition extends AvatarStateMachineElement {
     }
 
     public void addAction(String _action) {
+        TraceManager.addDev("****************************  String expr to be added: " + _action);
         AvatarAction aa = AvatarTerm.createActionFromString(block, _action);
-        //TraceManager.addDev("****************************  Avatar action : " + aa);
+        TraceManager.addDev("****************************  Adding Avatar action from String : " + aa);
         if (aa != null)
             actions.add(aa);
     }
 
     public void addAction(AvatarAction _action) {
         if (_action != null)
+            TraceManager.addDev("****************************  Avatar action from AvatarAction: " + _action);
             this.actions.add(_action);
     }
 
diff --git a/src/main/java/avatartranslator/AvatarTuple.java b/src/main/java/avatartranslator/AvatarTuple.java
index 4386fe06f5aa479f3d67bd7b677d09608beb90b3..d5d716c10e57dcaaf84919b7839edee86ea9f9a7 100644
--- a/src/main/java/avatartranslator/AvatarTuple.java
+++ b/src/main/java/avatartranslator/AvatarTuple.java
@@ -38,6 +38,8 @@
 
 package avatartranslator;
 
+import myutil.TraceManager;
+
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -61,15 +63,13 @@ public class AvatarTuple extends AvatarLeftHand {
 
         if (toParse.trim().startsWith("(")) {
             int indexLParen = toParse.indexOf ("(");
-            int indexRParen = toParse.indexOf (")", indexLParen);
-            if (indexRParen == -1)
-                indexRParen = toParse.length ();
+            int indexRParen = AvatarGuard.getMatchingRParen (toParse, indexLParen);
             String[] components = toParse.substring (indexLParen+1, indexRParen).trim().split (",");
             boolean illFormed = false;
             AvatarTuple argsTuple = new AvatarTuple (block);
             for (String arg: components) {
                 if (!arg.isEmpty()) {
-                    // TraceManager.addDev("In for with arg=" + arg+"|");
+                    TraceManager.addDev("In for with arg=" + arg+"|");
                     AvatarTerm t = AvatarTerm.createFromString (block, arg);
                     if (t == null) {
                         // Term couldn't be parsed
@@ -81,9 +81,14 @@ public class AvatarTuple extends AvatarLeftHand {
                 }
             }
 
-            if (!illFormed)
+            if (!illFormed) {
                 // Every argument was correctly parsed
                 result = argsTuple;
+               TraceManager.addDev("Successfully parsed tuple \"" + toParse.substring (indexLParen+1, indexRParen) + "\"");
+            } else {
+                TraceManager.addDev("Illformed expression ...");
+            }
+
         }
 
         return result;
diff --git a/src/main/java/cli/Interpreter.java b/src/main/java/cli/Interpreter.java
index bd539ae3963b881b3b28b9af8969e528bfbc07ab..67ec801640936676c1dfd7ab4232f59003ce6db2 100644
--- a/src/main/java/cli/Interpreter.java
+++ b/src/main/java/cli/Interpreter.java
@@ -61,7 +61,7 @@ import java.util.*;
  */
 public class Interpreter implements Runnable  {
     public final static Command[] commands = {new Help(), new Quit(), new Action(),
-            new Set(), new Wait(), new Print(), new History()};
+            new Set(), new Wait(), new Print(), new History(), new TestSpecific()};
 
     // Errors
     public final static String UNKNOWN = "Unknown command";
diff --git a/src/main/java/myutil/BoolExpressionEvaluator.java b/src/main/java/myutil/BoolExpressionEvaluator.java
index ff6557e73e6652153c138da17551d9e4c17bc32a..a77656c7a752a5e233e351c52ea65c7d905cb6c5 100644
--- a/src/main/java/myutil/BoolExpressionEvaluator.java
+++ b/src/main/java/myutil/BoolExpressionEvaluator.java
@@ -1608,6 +1608,9 @@ public class BoolExpressionEvaluator {
     public boolean getResultOfWithIntExpr(String _expr) {
         int index, indexPar;
 
+
+        //TraceManager.addDev("Going to evaluate: " + _expr);
+
         String tmp = Conversion.replaceAllString(_expr, "==", "$").trim();
         tmp = Conversion.replaceAllString(tmp, "!=", "$").trim();
         tmp = Conversion.replaceAllString(tmp, ">=", ":").trim();
@@ -1717,7 +1720,7 @@ public class BoolExpressionEvaluator {
         IntBoolRes newElt;
 
         //TraceManager.addDev(current.getTop().toString());
-        //TraceManager.addDev("<><><><><><> Dealing with token:" + token + " current=" + current);
+        TraceManager.addDev("<><><><><><> Dealing with token:" + token + " current=" + current);
 
         char c1 = token.charAt(0);
 
diff --git a/src/main/java/myutil/IntExpressionEvaluator.java b/src/main/java/myutil/IntExpressionEvaluator.java
index 9d90bfe6d05a30adc107de252802efe733f40843..afab93a2e10eafb8d5f7b130e5a442ffee6ca2fa 100644
--- a/src/main/java/myutil/IntExpressionEvaluator.java
+++ b/src/main/java/myutil/IntExpressionEvaluator.java
@@ -77,7 +77,7 @@ public class IntExpressionEvaluator {
     }
 
     public double getResultOf(String _expr) {
-        // TraceManager.addDev("Computing:" + _expr);
+        TraceManager.addDev("IntExpr: Computing:" + _expr);
         tokens = new java.util.StringTokenizer(_expr," \t\n\r+-*/()",true);
 
         computeNextToken();
diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java
index 1b99863898390e3dba6c9f2188933a3b269f99d8..122153ba6c569fc22c5bd34a60e721c8840ee137 100644
--- a/src/main/java/ui/AvatarDesignPanelTranslator.java
+++ b/src/main/java/ui/AvatarDesignPanelTranslator.java
@@ -1668,7 +1668,9 @@ public class AvatarDesignPanelTranslator {
 
         for (String actionText : connector.getEffectiveActions()) {
             if (actionText.trim().length() > 0) {
+                //TraceManager.addDev("Action1:" + actionText);
                 actionText = modifyString(actionText.trim());
+                //TraceManager.addDev("Action2:" + actionText);
 
                 // Variable assignment or method call?
                 if (!isAVariableAssignation(actionText)) {
@@ -1700,6 +1702,7 @@ public class AvatarDesignPanelTranslator {
                     if (error < 0) {
                         makeError(error, connector.tdp, block, connector, "transition action", actionText);
                     } else {
+                        //TraceManager.addDev("Adding action:" + actionText);
                         transition.addAction(actionText);
                     }
                 }