diff --git a/src/avatartranslator/AvatarBlock.java b/src/avatartranslator/AvatarBlock.java
index d5e2f79045a93cbfa07589bbd695bf23bf6b9721..06b58536bec08a190052e05886f5cfc7873ff19f 100644
--- a/src/avatartranslator/AvatarBlock.java
+++ b/src/avatartranslator/AvatarBlock.java
@@ -179,6 +179,14 @@ public class AvatarBlock extends AvatarElement {
         return attributes.size();
     }
 
+    public int stateNb() {
+        return asm.stateNb();
+    }
+
+    public AvatarState getState(int index) {
+	return asm.getState(index);
+    }
+
     public void putAllTimers(ArrayList<AvatarAttribute> timers) {
         for(AvatarAttribute attribute: attributes) {
             if (attribute.getType() == AvatarType.TIMER) {
@@ -429,8 +437,8 @@ public class AvatarBlock extends AvatarElement {
             }
         }
 
-	value = new AvatarAttribute("__timerValue", AvatarType.INTEGER, this, getReferenceObject());
-	addAttribute(value);
+        value = new AvatarAttribute("__timerValue", AvatarType.INTEGER, this, getReferenceObject());
+        addAttribute(value);
 
         // Modify the state machine
         if (asm.removeTimers(this, "__timerValue")) {
diff --git a/src/avatartranslator/AvatarStateMachine.java b/src/avatartranslator/AvatarStateMachine.java
index 8cbdd568f27621d597610be41620fced1a73056a..eeae2aabaed23039c7d2fc76948733745b781ec5 100644
--- a/src/avatartranslator/AvatarStateMachine.java
+++ b/src/avatartranslator/AvatarStateMachine.java
@@ -58,6 +58,8 @@ public class AvatarStateMachine extends AvatarElement {
 
     private static int ID_ELT = 0;
 
+    protected LinkedList<AvatarStateMachineElement> states;
+
 
     public AvatarStateMachine(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -74,16 +76,47 @@ public class AvatarStateMachine extends AvatarElement {
 
     public void addElement(AvatarStateMachineElement _element) {
         elements.add(_element);
+	states = null;
     }
 
     public void removeElement(AvatarStateMachineElement _element) {
         elements.remove(_element);
+	states = null;
     }
 
     public LinkedList<AvatarStateMachineElement> getListOfElements() {
         return elements;
     }
 
+    private void makeStates() {
+	states = new LinkedList<AvatarStateMachineElement>();
+	for(AvatarStateMachineElement asme: elements) {
+	    if (asme instanceof AvatarState) {
+		states.add(asme);
+	    }
+	}
+    }
+
+    public int stateNb() {
+	if (states == null) {
+	    makeStates();
+	}
+
+	return states.size();
+    }
+
+    public AvatarState getState(int index) {
+	if (states == null) {
+	    makeStates();
+	}
+
+	try {
+	    return (AvatarState)(states.get(index));
+	} catch (Exception e) {
+	}
+	return null;
+    }
+
     private int getSimplifiedElementsAux (HashMap<AvatarStateMachineElement, Integer> simplifiedElements, HashSet<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) {
         if (visited.contains (root)) {
             Integer name = simplifiedElements.get (root);
diff --git a/src/ui/TGComponent.java b/src/ui/TGComponent.java
index 035c0b8656b00fb7b2004c976b28ac3602721b31..b144c5d353c76388bf55e3dea4536c8a62df9450 100755
--- a/src/ui/TGComponent.java
+++ b/src/ui/TGComponent.java
@@ -653,6 +653,10 @@ public abstract class TGComponent implements CDElement, GenericTree {
         AVATAR_met = _metNb;
     }
 
+    public int getAVATARMet() {
+	return AVATAR_met;
+    }
+
     public void setInternalAvatarMet(int _metNb) {
         for(int i=0; i<nbInternalTGComponent; i++) {
             tgcomponent[i].setAVATARMet(_metNb);
diff --git a/src/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java b/src/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java
index a1c74ab8674c8d6830704a9190d19163ce8910e7..8f63f5d31891ff10c44f1effa7f9f62b954da03c 100755
--- a/src/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java
+++ b/src/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java
@@ -151,6 +151,12 @@ public  class JFrameAvatarInteractiveSimulation extends JFrame implements Avatar
     private TransactionTableModel transactiontm;
     private JScrollPane jspTransactionInfo;
 
+    // Met elements
+    private JPanel metElementsPanel;
+    private MetElementsTableModel metelementstm;
+    private JScrollPane jspMetElementsInfo;
+    
+
     // DisplayedBlocks
     private JPanel displayedBlockPanel;
     private JScrollPane jspDisplayedBlocks;
@@ -767,6 +773,26 @@ public  class JFrameAvatarInteractiveSimulation extends JFrame implements Avatar
         transactionPanel.add(jspTransactionInfo, BorderLayout.CENTER);
 
 
+	// Met elements
+        metElementsPanel = new JPanel();
+        metElementsPanel.setLayout(new BorderLayout());
+        infoTab.addTab("Met states", IconManager.imgic1202, metElementsPanel, "Met states");
+        metelementstm = new MetElementsTableModel(ass);
+
+        sorterPI = new TableSorter(metelementstm);
+        jtablePI = new JTable(sorterPI);
+        sorterPI.setTableHeader(jtablePI.getTableHeader());
+        ((jtablePI.getColumnModel()).getColumn(0)).setPreferredWidth(100);
+        ((jtablePI.getColumnModel()).getColumn(1)).setPreferredWidth(100);
+        ((jtablePI.getColumnModel()).getColumn(2)).setPreferredWidth(100);
+        jtablePI.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+        jspMetElementsInfo = new JScrollPane(jtablePI);
+        jspMetElementsInfo.setWheelScrollingEnabled(true);
+        jspMetElementsInfo.getVerticalScrollBar().setUnitIncrement(10);
+        jspMetElementsInfo.setPreferredSize(new Dimension(250, 300));
+        metElementsPanel.add(jspMetElementsInfo, BorderLayout.CENTER);
+
+
         // Displayed blocks
         displayedBlockPanel = new JPanel();
         displayedBlockPanel.setLayout(new GridBagLayout());
@@ -1237,6 +1263,7 @@ public  class JFrameAvatarInteractiveSimulation extends JFrame implements Avatar
                     tgc = (TGComponent)oo;
                     //TraceManager.addDev("TGComponent: " + tgc);
                     tgc.setAVATARMet(hashOfAllElements.get(o).intValue());
+		    
                 }
 
             }