diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
index b44f6d564a1568efd7bfea2286f1d28875e1a5e9..26cb4837e1706dc62cc72ba8ae301c8ae4e3af18 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
@@ -80,6 +80,11 @@ public class AvatarFromSysML {
             if(l.get(i).getName().equals(_name)) return  l.get(i);
         return null;
     }
+    private AvatarAttribute getTimerByName(String _name, AvatarBlock _block) {
+        AvatarAttribute res =  getAttributeByName(_name, _block);
+        if (res != null && res.getType() == AvatarType.TIMER) return res;
+        return null;
+    }
     private AvatarStateMachineElement getState(StxState _s, AvatarBlock _b) {
         AvatarStateMachineElement s = stateMap.get(_s);
         if (s == null) {
@@ -334,12 +339,32 @@ public class AvatarFromSysML {
                                 state.setSignal(getSignal(transition.getSignal()));
                                 StxOutMessage profile = transition.getSignal().getChannel().getOutProfile();
                                 HashMap<String, String> receivePayload = transition.getReceivePayload();
-
+                                int nbParams = profile.getSize();
+                                for (int k = 0; k < nbParams; k++) {
+                                    String[] ids = extendPath( receivePayload.get(profile.getFieldName(k)), blk).split(",");
+                                    for (String id : ids)  state.addValue(id);
+                                }
+                            }
+                        }
+                        else if (transition.getType() == AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) {
+                             if(tgtState instanceof AvatarSetTimer) {
+                                 AvatarSetTimer state = (AvatarSetTimer) tgtState;
+                                 state.setTimer(getTimerByName(transition.getTimer(), theBlock));
+                                 state.setTimerValue(((StxExpr)transition.getSendPayload().get(0)).getString());
+                             }
+                        }
+                        else if (transition.getType() == AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) {
+                            if(tgtState instanceof AvatarResetTimer) {
+                                AvatarResetTimer state = (AvatarResetTimer) tgtState;
+                                state.setTimer(getTimerByName(transition.getTimer(), theBlock));
+                            }
+                        }
+                        else if (transition.getType() == AvatarFromSysMLSyntax.STXEXPIRETIMERTRANSITION) {
+                            if(tgtState instanceof AvatarExpireTimer) {
+                                AvatarExpireTimer state = (AvatarExpireTimer) tgtState;
+                                state.setTimer(getTimerByName(transition.getTimer(), theBlock));
                             }
                         }
-                        else if (transition.getType() == AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) {}
-                        else if (transition.getType() == AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) {}
-                        else if (transition.getType() == AvatarFromSysMLSyntax.STXEXPIRETIMERTRANSITION) {}
                         else {}
                    }
                 }
diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
index bb352a93bc274bfe3f41a48d96f1990ceccc34b7..a6ba87ee7c9dd7dde2a5dde0d7afd9239ba4dc16 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
@@ -945,6 +945,11 @@ payloadParam ::=
       :}
     | payloadParamBegin IDENT LPAR RPAR
     | payloadParamBegin IDENT
+    | payloadParamBegin TIMERSETMSG_T LPAR StxExpr:e RPAR {:
+        argList.add(e);
+        theTransition.setSendPayload(argList);
+        argList = null;
+      :}
 ;
 payloadParamBegin ::= PAYLOAD_F EQUAL {: argList= new ArrayList<StxTerm>(); :};
 
@@ -953,7 +958,7 @@ channelParam ::= CHANNEL_F EQUAL IDENT:id {:
     theTransition.setSignal(theSignal);
 :};
 
-settimerParam ::= CHANNEL_F EQUAL IDENT:id POINT SET_TM {:
+settimerParam ::= CHANNEL_F EQUAL IDENT:id POINT SET_TM {: // '@payload' = '#TimerSetMsg'(10)
     theTransition.setTimer(id.getAvatarName());
 :};
 resettimerParam ::= CHANNEL_F EQUAL IDENT:id POINT RESET_TM {: