diff --git a/src/ui/IconManager.java b/src/ui/IconManager.java
index 8684fcb114f1a25995143957f5d34f756792e1dd..080f3d2fa685ea2edb3b693aa43aed1410aedad2 100755
--- a/src/ui/IconManager.java
+++ b/src/ui/IconManager.java
@@ -115,6 +115,9 @@ public class IconManager {
 	public static ImageIcon imgic1200, imgic1202, imgic1204, imgic1206, imgic1208;
 	public static ImageIcon imgic1300, imgic1302, imgic1304, imgic1306, imgic1308;
 	public static ImageIcon imgic1310, imgic1312, imgic1314, imgic1316, imgic1318;
+	public static ImageIcon imgic1320, imgic1322, imgic1324;
+	
+	
     // SMD diagram
     public static ImageIcon imgic2000, imgic2002, imgic2004,imgic2006,imgic2008,imgic2010, imgic2012;
     
@@ -410,8 +413,11 @@ public class IconManager {
 	private static String icon1310 = "images/savevcd24.gif";
 	private static String icon1312 = "images/savehtml24.gif";
 	private static String icon1314 = "images/savetxt24.gif";
-	//private static String icon1316 = "images/savestate24.gif";
-	//private static String icon1318 = "images/restorestate24.gif";
+	private static String icon1316 = "images/steptobus.gif";
+	private static String icon1318 = "images/steptotask.gif";
+	private static String icon1320 = "images/steptocpu.gif";
+	private static String icon1322 = "images/steptomem.gif";
+	private static String icon1324 = "images/steptochan.gif";
    
     // SMD diagrams
     private static String icon2000 = "images/prosmdsendmsg.gif";
@@ -701,8 +707,11 @@ public class IconManager {
 		imgic1310 = getIcon(icon1310);
 		imgic1312 = getIcon(icon1312);
 		imgic1314 = getIcon(icon1314);
-		//imgic1316 = getIcon(icon1316);
-		//imgic1318 = getIcon(icon1318);
+		imgic1316 = getIcon(icon1316);
+		imgic1318 = getIcon(icon1318);
+		imgic1320 = getIcon(icon1320);
+		imgic1322 = getIcon(icon1322);
+		imgic1324 = getIcon(icon1324);
         
         imgic2000 = getIcon(icon2000);
         imgic2002 = getIcon(icon2002);
diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java
index ff370dbb43a18a13abacd6219d5d60ad3c4f2416..154a9d11dfa9f51a7cf2c25c76ab4c1a8503c961 100755
--- a/src/ui/MainGUI.java
+++ b/src/ui/MainGUI.java
@@ -4926,7 +4926,10 @@ public	class MainGUI implements ActionListener, WindowListener, KeyListener {
 	
 	public void setDiploIDs(boolean b) {
 		TDiagramPanel.DIPLO_ID_ON = b;
-		getCurrentTDiagramPanel().repaint(); 
+		TDiagramPanel tdp = getCurrentTDiagramPanel();
+		if (tdp != null) {
+			tdp.repaint();
+		}
 	}
 	
 	public synchronized boolean isRunningID(int id) {
@@ -4948,7 +4951,10 @@ public	class MainGUI implements ActionListener, WindowListener, KeyListener {
 			runningIDs.clear();
 		}
 		runningIDs = null;
-		getCurrentTDiagramPanel().repaint(); 
+		TDiagramPanel tdp = getCurrentTDiagramPanel();
+		if (tdp != null) {
+			tdp.repaint();
+		}
 	}
 	
 	public synchronized void addRunningID(Integer id) {
diff --git a/src/ui/interactivesimulation/InteractiveSimulationActions.java b/src/ui/interactivesimulation/InteractiveSimulationActions.java
index 37cf751d08739a01086f9ffc1ee5fd82ff9a3971..607dccda49a4c9749433e3ef877ff6dbd8c8a796 100755
--- a/src/ui/interactivesimulation/InteractiveSimulationActions.java
+++ b/src/ui/interactivesimulation/InteractiveSimulationActions.java
@@ -138,11 +138,11 @@ public class InteractiveSimulationActions extends AbstractAction {
         actions[ACT_RUN_X_COMMANDS] = new TAction("run-x-commands", "Run x commands", IconManager.imgic1308, IconManager.imgic1308, "Run x commands", "Run simulation for x commands. Works only if the simulator is \"ready\"", 'R');
         
 		actions[ACT_RUN_EXPLORATION] = new TAction("run-exploration", "Run exploration", IconManager.imgic1308, IconManager.imgic1308, "Run exploration", "Explore branches of the simulation", 'R');
-        actions[ACT_RUN_TO_NEXT_BUS_TRANSFER] = new TAction("run-until-bus-transfer", "Run until bus transfer", IconManager.imgic1308, IconManager.imgic1308, "Run until transfer on bus", "Run until a transfer on the indicated bus is performed. Works only if the simulator is \"ready\"", 'R');
-        actions[ACT_RUN_UNTIL_CPU_EXECUTES] = new TAction("run-to-cpu", "Run until CPU executes", IconManager.imgic1308, IconManager.imgic1308, "Run until CPU executes", "Run until a CPU, given as parameter, executes. Works only if the simulator is \"ready\"", 'R');
-        actions[ACT_RUN_UNTIL_TASK_EXECUTES] = new TAction("run-to-task", "Run until a task executes", IconManager.imgic1308, IconManager.imgic1308, "Run until a task executes", "Run until a task executes. Works only if the simulator is \"ready\"", 'R');
-        actions[ACT_RUN_UNTIL_MEMORY_ACCESS] = new TAction("run-to-memory-accessd", "Run until a memory access is performed", IconManager.imgic1308, IconManager.imgic1308, "Run until a memory access is performed", "Run simulation until a memory access is performed on selected memory. Works only if the simulator is \"ready\"", 'R');
-        actions[ACT_RUN_UNTIL_CHANNEL_ACCESS] = new TAction("run--to-channel-access", "Run until a channel is accessed", IconManager.imgic1308, IconManager.imgic1308, "Run until a channel is accessed", "Run until a channel is accessed. Works only if the simulator is \"ready\"", 'R');
+        actions[ACT_RUN_TO_NEXT_BUS_TRANSFER] = new TAction("run-until-bus-transfer", "Run until bus transfer", IconManager.imgic1316, IconManager.imgic1316, "Run until transfer on bus", "Run until a transfer on the indicated bus is performed. Works only if the simulator is \"ready\"", 'R');
+        actions[ACT_RUN_UNTIL_CPU_EXECUTES] = new TAction("run-to-cpu", "Run until CPU executes", IconManager.imgic1320, IconManager.imgic1320, "Run until CPU executes", "Run until a CPU, given as parameter, executes. Works only if the simulator is \"ready\"", 'R');
+        actions[ACT_RUN_UNTIL_TASK_EXECUTES] = new TAction("run-to-task", "Run until a task executes", IconManager.imgic1318, IconManager.imgic1318, "Run until a task executes", "Run until a task executes. Works only if the simulator is \"ready\"", 'R');
+        actions[ACT_RUN_UNTIL_MEMORY_ACCESS] = new TAction("run-to-memory-accessd", "Run until a memory access is performed", IconManager.imgic1322, IconManager.imgic1322, "Run until a memory access is performed", "Run simulation until a memory access is performed on selected memory. Works only if the simulator is \"ready\"", 'R');
+        actions[ACT_RUN_UNTIL_CHANNEL_ACCESS] = new TAction("run--to-channel-access", "Run until a channel is accessed", IconManager.imgic1324, IconManager.imgic1324, "Run until a channel is accessed", "Run until a channel is accessed. Works only if the simulator is \"ready\"", 'R');
 		
 		actions[ACT_SAVE_VCD] = new TAction("save-vcd", "Save trace in VCD format", IconManager.imgic1310, IconManager.imgic1310, "Save trace in VCD format", "Save trace in VCD format", 'R');
         actions[ACT_SAVE_HTML] = new TAction("save-html", "Save trace in HTML format", IconManager.imgic1312, IconManager.imgic1312, "Save trace in HTML format", "Save trace in HTML format", 'R');
diff --git a/src/ui/interactivesimulation/MainCommandsToolBar.java b/src/ui/interactivesimulation/MainCommandsToolBar.java
index ca4cefac1d254167c154ef4eaabaa8b1d7eabb17..b5bedc78b6211564209fa38224bcaa1aaf4aae97 100755
--- a/src/ui/interactivesimulation/MainCommandsToolBar.java
+++ b/src/ui/interactivesimulation/MainCommandsToolBar.java
@@ -112,18 +112,20 @@ public class MainCommandsToolBar extends InteractiveSimulationBar {
 		
 		this.addSeparator();
 		
-		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_TO_NEXT_BUS_TRANSFER]);
-        button.addMouseListener(jfis.mouseHandler);
-		
 		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_UNTIL_CPU_EXECUTES]);
         button.addMouseListener(jfis.mouseHandler);
 		
-		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_UNTIL_TASK_EXECUTES]);
+		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_TO_NEXT_BUS_TRANSFER]);
         button.addMouseListener(jfis.mouseHandler);
 		
 		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_UNTIL_MEMORY_ACCESS]);
         button.addMouseListener(jfis.mouseHandler);
 		
+		this.addSeparator();
+		
+		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_UNTIL_TASK_EXECUTES]);
+        button.addMouseListener(jfis.mouseHandler);
+		
 		button = this.add(jfis.actions[InteractiveSimulationActions.ACT_RUN_UNTIL_CHANNEL_ACCESS]);
         button.addMouseListener(jfis.mouseHandler);