diff --git a/src/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/avatartranslator/directsimulation/AvatarSimulationBlock.java
index d62d5c8a3488bdba5cfdb23aaa7beef7f1c7d760..5ebaa09d97f116041bc5e3e96bfd90401be4baa1 100644
--- a/src/avatartranslator/directsimulation/AvatarSimulationBlock.java
+++ b/src/avatartranslator/directsimulation/AvatarSimulationBlock.java
@@ -303,7 +303,7 @@ public class AvatarSimulationBlock  {
 		} else {
 			ast.silent = true;
 		}
-		TraceManager.addDev("Transaction " + ast.id + " silent=" + ast.silent);
+		//TraceManager.addDev("Transaction " + ast.id + " silent=" + ast.silent);
 		if (_aspt != null) {
 			_aspt.clockValueAtEnd = _clockValue;
 			if (_aspt.hasClock) {
diff --git a/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java b/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java
index c2240962466efd700734f378eca69f9732d0c6f4..f54b53932eedaec46fa566e5ecd12a62ad5abbc1 100644
--- a/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java
+++ b/src/avatartranslator/directsimulation/AvatarSpecificationSimulation.java
@@ -558,11 +558,11 @@ public class AvatarSpecificationSimulation  {
 			if (aspt.hasDelay) {
 				if (aspt.myMinDuration < minMin) {
 					minMin = aspt.myMinDuration;
-					indexMin = ll.size();
 					//TraceManager.addDev("Setting min duration = " +  minMin);
 				}
 				if (aspt.myMaxDuration < maxDuration) {
 					maxDuration = aspt.myMaxDuration;
+					indexMin = ll.size();
 					//TraceManager.addDev("Setting max Duration = " +  maxDuration);
 				}
 			}
@@ -813,19 +813,19 @@ public class AvatarSpecificationSimulation  {
 			if ((tr.elementToExecute instanceof AvatarTransition) && (executeEmptyTransition)) {
 				AvatarTransition atr = (AvatarTransition)(tr.elementToExecute);
 				if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())){
-					TraceManager.addDev("Empty transition?");
+					//TraceManager.addDev("Empty transition?");
 					if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) {
 						tr.isSilent = true;
-						TraceManager.addDev("Yes");
+						//TraceManager.addDev("Yes");
 						return tr;
 					}
 				}
 			// State entering?
 			} else if (((tr.elementToExecute instanceof AvatarState) ||  (tr.elementToExecute instanceof AvatarStopState)) && (executeStateEntering)) {
-				TraceManager.addDev("Empty state enter?");
+				//TraceManager.addDev("Empty state enter?");
 				if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) {
 					tr.isSilent = true;
-					TraceManager.addDev("Yes");
+					//TraceManager.addDev("Yes");
 					return tr;
 				}
 			}
diff --git a/src/ui/IconManager.java b/src/ui/IconManager.java
index 2ef6ad0f63ec3c5e7f19c7e9992bb51eaa1179ce..4865a34687b5c4c39dfc81f15032760ac2431a04 100755
--- a/src/ui/IconManager.java
+++ b/src/ui/IconManager.java
@@ -144,9 +144,9 @@ public class IconManager {
 	public static ImageIcon imgic5020, imgic5022, imgic5024, imgic5026, imgic5028;
 	public static ImageIcon imgic5030, imgic5032, imgic5034, imgic5036, imgic5038;
 	public static ImageIcon imgic5040, imgic5042, imgic5044, imgic5046, imgic5048;
-	public static ImageIcon imgic5050, imgic5052, imgic5054;
+	public static ImageIcon imgic5050, imgic5052, imgic5054, imgic5056;
 	
-	public static ImageIcon imgic5100, imgic5102, imgic5104;
+	public static ImageIcon imgic5100, imgic5102, imgic5104, imgic5106, imgic5108;
 	
        // Delegate ports image removed, by Solange
     //public static ImageIcon imgic2102;
@@ -530,13 +530,18 @@ public class IconManager {
 	private static String icon5048 = "images/avataractivity.gif";
 	private static String icon5050 = "images/avatarsendsignal.gif";
 	private static String icon5052 = "images/avatarpartition.gif";
-	private static String icon5054 = "images/alignpartition.gif";
+	private static String icon5054 = "images/alignpartition.gif";  
+	private static String icon5056 = "images/avatarreceivesignal.gif";
 	
 	private static String icon5100 = "images/avatarhead16.gif";
 	private static String icon5102 = "images/avatarhead32.gif";
+
 	
 	private static String icon5104 = "images/savepng24.gif";
 	
+	private static String icon5106 = "images/attribute.gif";
+	private static String icon5108 = "images/method.gif";
+	
     public IconManager() {
         
     }
@@ -893,10 +898,13 @@ public class IconManager {
 		imgic5050 = getIcon(icon5050);
 		imgic5052 = getIcon(icon5052);
 		imgic5054 = getIcon(icon5054);
+		imgic5056 = getIcon(icon5056);
 		
 		imgic5100 = getIcon(icon5100);
 		imgic5102 = getIcon(icon5102);
 		imgic5104 = getIcon(icon5104);
+		imgic5106 = getIcon(icon5106);
+		imgic5108 = getIcon(icon5108);
 		if (imgic5100 != null) {
 			img5100 = imgic5100.getImage();
 		}
diff --git a/src/ui/JToolBarMainTurtle.java b/src/ui/JToolBarMainTurtle.java
index 3f98ce6a1edf99584e5f3da265d4a9eef342bc06..e08c9df1d4fd2ac4ce4f80b0da7bf46f8f5669a0 100755
--- a/src/ui/JToolBarMainTurtle.java
+++ b/src/ui/JToolBarMainTurtle.java
@@ -257,7 +257,7 @@ public	class JToolBarMainTurtle extends JToolBar	{
 	
 	public void showAvatarActions(boolean b) {
 		
-		TraceManager.addDev("Show avatar options with b = " + b);
+		//TraceManager.addDev("Show avatar options with b = " + b);
 		
 		 avatarSimu.setVisible(b);
 		 avatarFVUPPAAL.setVisible(b);
diff --git a/src/ui/TGUIAction.java b/src/ui/TGUIAction.java
index 3b2be95822138f1b6341d510774b58eb9edd9ea6..338a0cdecf70f46f8de7a84e684324a14b8ec793 100755
--- a/src/ui/TGUIAction.java
+++ b/src/ui/TGUIAction.java
@@ -955,7 +955,7 @@ public class TGUIAction extends AbstractAction {
         actions[AAD_ACTION] = new TAction("add-aad-action", "Action", IconManager.imgic204, IconManager.imgic204, "Action", "Add a new action to the currently opened AVATAR avatar activity diagram", 0);
         actions[AAD_STOP_FLOW] = new TAction("add-aad-stop-flow", "Stop flow", IconManager.imgic5046, IconManager.imgic5046, "Stop flow", "Add a stop flow state to the currently opened avatar activity diagram", 0);
         actions[AAD_SEND_SIGNAL_ACTION] = new TAction("add-add-send-signal-action", "Send signal", IconManager.imgic5050, IconManager.imgic5050, "Send signal", "Add a send signal operator to the currently opened avatar activity diagram", 0);
-        actions[AAD_ACCEPT_EVENT_ACTION] = new TAction("add-add-accept-event-action", "Accept event", IconManager.imgic908, IconManager.imgic908, "Accept event", "Add an accept event operator to the currently opened avatar activity diagram", 0);
+        actions[AAD_ACCEPT_EVENT_ACTION] = new TAction("add-add-accept-event-action", "Accept event", IconManager.imgic5056, IconManager.imgic5056, "Accept event", "Add an accept event operator to the currently opened avatar activity diagram", 0);
         actions[AAD_PARTITION] = new TAction("add-add-partition", "Partition", IconManager.imgic5052, IconManager.imgic5052, "Partition", "Add a partition to the currently opened avatar activity diagram", 0);
         actions[AAD_ALIGN_PARTITION] = new TAction("add-aad-align_partitions", "Align partitions", IconManager.imgic5054, IconManager.imgic5054, "Align partitions", "Align partitions of the currently opened avatar activity diagram", 0);
         
diff --git a/src/ui/avatarbd/AvatarBDBlock.java b/src/ui/avatarbd/AvatarBDBlock.java
index 845a9da5404a2e025ef4d2aa3d45868383dfeade..a0d4c9af77a38dd8a225db43a7feb5e5e2dec405 100644
--- a/src/ui/avatarbd/AvatarBDBlock.java
+++ b/src/ui/avatarbd/AvatarBDBlock.java
@@ -58,7 +58,7 @@ import ui.window.*;
 import ui.avatarsmd.*;
 
 
-public class AvatarBDBlock extends TGCScalableWithInternalComponent implements SwallowTGComponent, SwallowedTGComponent {
+public class AvatarBDBlock extends TGCScalableWithInternalComponent implements SwallowTGComponent, SwallowedTGComponent, GenericTree {
     private int textY1 = 3;
     private String stereotype = "block";
 	
@@ -992,6 +992,69 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 		}
 	}
 	
+	public boolean hasDefinitions() {
+		return ((myAttributes.size() + myMethods.size() + mySignals.size() + nbInternalTGComponent)>0);
+	}
+	
+	// Main Tree
+    
+    public int getChildCount() {
+    	//TraceManager.addDev("Counting childs!");
+        return myAttributes.size() + myMethods.size() + mySignals.size() + nbInternalTGComponent;
+    }
+    
+    public Object getChild(int index) {
+    	
+    	int sa = nbInternalTGComponent;
+    	
+    	if (sa > index) {
+    		return tgcomponent[index];
+    	}
+    
+    	index = index - nbInternalTGComponent;
+    	sa = myAttributes.size();
+    //	TraceManager.addDev("index = " + index + " sa=" + sa);
+    	if (sa <= index) {
+    		index = index - sa;
+    		sa = myMethods.size();
+    		if (sa <= index) {
+    			return mySignals.get(index - sa);
+    		} else {
+    			return myMethods.get(index);
+    		}
+    	}
+    	
+    	return myAttributes.get(index);
+    }
+    
+    public int getIndexOfChild(Object child) {
+    	if (child instanceof AvatarBDBlock) {
+    		for(int i=0; i<nbInternalTGComponent; i++) {
+    			if (tgcomponent[i] == child) {
+    				return i;
+    			}
+    		}
+    	}
+    	
+    	if (child instanceof TAttribute) {
+    		return myAttributes.indexOf(child) + nbInternalTGComponent;
+    	}
+    	
+    	if (child instanceof AvatarMethod) {
+    		return myMethods.indexOf(child) + myAttributes.size() + nbInternalTGComponent;
+    	}
+    	
+    	if (child instanceof AvatarSignal) {
+    		return mySignals.indexOf(child) + myAttributes.size() + myMethods.size() + nbInternalTGComponent;
+    	}
+    	
+    	return -1;
+    }
+    
+    public ImageIcon getImageIcon() {
+        return myImageIcon;
+    }
+	
 	
     
 }
diff --git a/src/ui/images/attribute.gif b/src/ui/images/attribute.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c6f3b57569b69550ecd77866cceb2a79c90459a1
Binary files /dev/null and b/src/ui/images/attribute.gif differ
diff --git a/src/ui/images/method.gif b/src/ui/images/method.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ad18da049374b1b2cc4f0253ea568f899309118f
Binary files /dev/null and b/src/ui/images/method.gif differ
diff --git a/src/ui/tree/DiagramTreeModel.java b/src/ui/tree/DiagramTreeModel.java
index d24ee5cb1161137fdee552ba620fc03fce18c072..4498e64e9ecd6a0eec66c40c26aeb33b87624dac 100755
--- a/src/ui/tree/DiagramTreeModel.java
+++ b/src/ui/tree/DiagramTreeModel.java
@@ -54,6 +54,8 @@ import translator.*;
 import ui.*;
 import myutil.*;
 
+import ui.avatarbd.*;
+
 public class DiagramTreeModel implements TreeModel {
     private MainGUI mgui;
     private Vector treeModelListeners = new Vector();
@@ -155,6 +157,9 @@ public class DiagramTreeModel implements TreeModel {
             }
             
             if (node instanceof TGComponent) {
+            	if (node instanceof AvatarBDBlock) {
+            		return !((AvatarBDBlock)node).hasDefinitions();
+            	}
                 if (((TGComponent)node).getNbInternalTGComponent() > 0) {
                     return false;
                 }
diff --git a/src/ui/tree/DiagramTreeRenderer.java b/src/ui/tree/DiagramTreeRenderer.java
index f6c8293140bf4207a0340668aeae2c0ec002b533..220922d14dc415583868502b2edec2ba70814708 100755
--- a/src/ui/tree/DiagramTreeRenderer.java
+++ b/src/ui/tree/DiagramTreeRenderer.java
@@ -223,6 +223,21 @@ public class DiagramTreeRenderer extends DefaultTreeCellRenderer  {
         }  else if (value instanceof CheckingError) {
             setIcon(IconManager.imgic322);
             setToolTipText(value.toString());
+        } else if (value instanceof TAttribute) {
+            setIcon(IconManager.imgic5106);
+            setToolTipText(value.toString());
+        } else if (value instanceof AvatarSignal) {
+        	if (((AvatarSignal)value).getInOut() == AvatarSignal.OUT) {
+        		setIcon(IconManager.imgic5050);
+            setToolTipText(value.toString());
+        	} else {
+            setIcon(IconManager.imgic5056);
+            setToolTipText(value.toString());
+            }
+        } else if (value instanceof AvatarMethod) {
+            setIcon(IconManager.imgic5108);
+            setToolTipText(value.toString());
+        
         } else {
             setToolTipText(null);
         }