diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java
index d073de496afdcd592d7b3a1207ccd688801b8149..693705474956f49aac2cdd52660511d3bdc4328c 100644
--- a/src/main/java/avatartranslator/AvatarSpecification.java
+++ b/src/main/java/avatartranslator/AvatarSpecification.java
@@ -37,7 +37,7 @@
  */
 
 package avatartranslator;
-
+import avatartranslator.tosysmlv2.*;
 import avatartranslator.intboolsolver.AvatarIBSolver;
 import myutil.Conversion;
 import myutil.NameChecker;
@@ -1746,8 +1746,8 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
 
     // SysML V2
     public static AvatarSpecification makeFromSysMLV2(String pathToFile) {
-        AvatarSpecification as = new AvatarSpecification(pathToFile, null);
-        return as;
+        AvatarFromSysML builder = new AvatarFromSysML();
+        return builder.sysMLtoSpec(pathToFile);
     }
 
     public List<String> getExtraTypes() {
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
index 0026b42853df9be0ab3689c9aa6331285f3f5dc7..19181dee2e1f79fdb14c1412e1e7476436a9791b 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
@@ -71,6 +71,7 @@ public class AvatarFromSysML {
         out.println(_err.toString());
     }
     public AvatarSpecification sysMLtoSpec(String _fileName) {
+        System.out.println("$$$$$$$$$$ BEGINNING $$$$$$$$$$$$");
         AvatarFromSysMLParser parser;
         try { parser =
                 new AvatarFromSysMLParser(new AvatarFromSysMLLexer(new FileReader(_fileName)),
@@ -93,6 +94,7 @@ public class AvatarFromSysML {
         buildDataTypes();
         buildBlocks();
         buildRelations();
+        System.out.println("$$$$$$$$$$ DONE $$$$$$$$$$$$");
         return avSpec;
     }
 
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java
index e3e5c9fcecfcb8d5ebfaddba743dfdc6568f709e..f4ac47674e2d6b37b971da119a158bf6769d93ad 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 12/06/2024 15:10 */
+/* The following code was generated by JFlex 1.4.3 on 12/06/2024 17:20 */
 
 package avatartranslator.tosysmlv2;
 import java_cup.runtime.*;
@@ -9,7 +9,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 12/06/2024 15:10 from the specification file
+ * on 12/06/2024 17:20 from the specification file
  * <tt>__AvatarFromSysMLLexer__.jflex</tt>
  */
 public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java
index 09f76a6c19a3fa99ad5d44eec3034c95f39754c5..8d5cfda62f457946eba4f2ac338d80f0ef934f99 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java
@@ -5069,12 +5069,18 @@ class CUP$AvatarFromSysMLParser$actions {
           case 244: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT 
             {
               Object RESULT =null;
+		Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft;
+		Location txright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xright;
+		Object t = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Object>value();
 		Location stxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft;
 		Location stxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright;
 		Ident st = CUP$AvatarFromSysMLParser$stack.peek().<Ident>value();
 		
         getState(st.getAvatarName());
         getTransition(0);
+        if (!theTransition.declare())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft,
+                "transition with same index has already been declared", null));
         clearTransitionLbls();
       
               CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transitionBegin",129, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT);
@@ -5085,6 +5091,9 @@ class CUP$AvatarFromSysMLParser$actions {
           case 245: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT IF INDEX_F EQ INT 
             {
               Object RESULT =null;
+		Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xleft;
+		Location txright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xright;
+		Object t = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8).<Object>value();
 		Location stxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft;
 		Location stxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xright;
 		Ident st = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Ident>value();
@@ -5094,6 +5103,9 @@ class CUP$AvatarFromSysMLParser$actions {
 		
        getState(st.getAvatarName());
        getTransition(i-1);
+        if (!theTransition.declare())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft,
+                "transition with same index has already been declared", null));
        clearTransitionLbls();
      
               CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transitionBegin",129, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT);
diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
index 21066b07e2b70e7adba143bdb0a27e6396d8fbf1..cb28b4ec71c658cfe898ffc70d92d239933f2885 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
@@ -1533,14 +1533,20 @@ transition ::=
       :}
 ;
 transitionBegin ::=
-      TRANSITION COLON AVTRANSITION_T FIRST IDENT:st {:
+      TRANSITION:t COLON AVTRANSITION_T FIRST IDENT:st {:
         getState(st.getAvatarName());
         getTransition(0);
+        if (!theTransition.declare())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft,
+                "transition with same index has already been declared", null));
         clearTransitionLbls();
       :}
-    | TRANSITION COLON AVTRANSITION_T FIRST IDENT:st IF INDEX_F EQ INT:i {:
+    | TRANSITION:t COLON AVTRANSITION_T FIRST IDENT:st IF INDEX_F EQ INT:i {:
        getState(st.getAvatarName());
        getTransition(i-1);
+        if (!theTransition.declare())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft,
+                "transition with same index has already been declared", null));
        clearTransitionLbls();
      :}
 ;
diff --git a/src/main/java/cli/Action.java b/src/main/java/cli/Action.java
index 3ede8b7940b771a554c059df6534fee24d0422c7..ce6fe5304bd176fbda04701b8cd48d9003307127 100644
--- a/src/main/java/cli/Action.java
+++ b/src/main/java/cli/Action.java
@@ -2358,7 +2358,6 @@ public class Action extends Command implements ProVerifOutputListener {
                 }
 
                 as = AvatarSpecification.makeFromSysMLV2(commands[0]);
-
                 if (interpreter.mgui != null) {
                     interpreter.mgui.gtm.setAvatarSpecification(as);
                 }