diff --git a/src/main/java/ui/AvatarPanelDrawer.java b/src/main/java/ui/AvatarPanelDrawer.java
index f3953695577abb45ecf6cd9bcf51f368efcf6e69..da3517b76a94354629f173c06d13f0d19293846b 100644
--- a/src/main/java/ui/AvatarPanelDrawer.java
+++ b/src/main/java/ui/AvatarPanelDrawer.java
@@ -66,10 +66,9 @@ public class AvatarPanelDrawer {
 	private boolean hasCrypto = false;
 
 	public AvatarPanelDrawer() {
-
 	}
-
-	public void drawPanel(AvatarSpecification avspec, AvatarDesignPanel adp, boolean useOriginalValuesFirst) {
+	
+	public void drawPanel(AvatarSpecification avspec, AvatarDesignPanel adp, boolean useOriginalValuesFirst, boolean useOriginalPositionSMD) {
 		//
 		// Check Errors in AVSPEC
 		avspec.removeAnomalies();
@@ -149,7 +148,7 @@ public class AvatarPanelDrawer {
 						AvatarSMDPanel smp = adp.getAvatarSMDPanel(bl.getValue());
 						//TraceManager.addDev("\nBuilding state machine of block " + ab.getName() + " smd:" + ab.getStateMachine().toString() + "\n" +
 						//       "\n");
-						buildStateMachine(ab, bl, smp, useOriginalValuesFirst);
+						buildStateMachine(ab, bl, smp, useOriginalValuesFirst, useOriginalPositionSMD);
 						//TraceManager.addDev("Putting in block")
 						blockMap.put(bl.getValue().split("__")[bl.getValue().split("__").length - 1], bl);
 						xpos += 100 * blockSizeMap.get(ab) + 200;
@@ -187,7 +186,7 @@ public class AvatarPanelDrawer {
 						drawBlockProperties(avspec, ab, bl, useOriginalValuesFirst);
 						abd.attach(bl);
 						AvatarSMDPanel smp = adp.getAvatarSMDPanel(bl.getValue());
-						buildStateMachine(ab, bl, smp, useOriginalValuesFirst);
+						buildStateMachine(ab, bl, smp, useOriginalValuesFirst, useOriginalPositionSMD);
 						blockMap.put(bl.getValue().split("__")[bl.getValue().split("__").length - 1], bl);
 						size = bl.getWidth();
 						blockIncMap.put(ab.getFather(), blockIncMap.get(ab.getFather()) + size + 10);
@@ -405,7 +404,8 @@ public class AvatarPanelDrawer {
 
 	}
 
-	public void buildStateMachine(AvatarBlock ab, AvatarBDBlock bl, AvatarSMDPanel smp, boolean useOriginalValuesFirst) {
+	public void buildStateMachine(AvatarBlock ab, AvatarBDBlock bl, AvatarSMDPanel smp, boolean useOriginalValuesFirst,
+								  boolean useOriginalPositionSMD) {
 
 		//TraceManager.addDev("Building state machine of " + ab.getName());
 
@@ -434,7 +434,7 @@ public class AvatarPanelDrawer {
 
 		AvatarStartState start = asm.getStartState();
 
-		addStates(start, smx, smy, smp, bl, SMDMap, locMap, tranDestMap, tranSourceMap, refMap, useOriginalValuesFirst);
+		addStates(start, smx, smy, smp, bl, SMDMap, locMap, tranDestMap, tranSourceMap, refMap, useOriginalValuesFirst, useOriginalPositionSMD);
 
 		//TraceManager.addDev("\nState machine: " + asm.toString() + "\n\n");
 
@@ -474,56 +474,7 @@ public class AvatarPanelDrawer {
 			}
 
 
-            /*if ((t.getReferenceObject() instanceof TGConnector) && (t.getOtherReferenceObjects().size() > 1)) {
-                TraceManager.addDev("Found reference objects before / after avatar transition");
-                TGConnector tgcon = (TGConnector) (t.getReferenceObject());
-                if ((t.getOtherReferenceObjects().get(0) instanceof TGComponent) && (t.getOtherReferenceObjects().get(1) instanceof TGComponent)) {
-                    // Find the first two components which are not TGCPointOfConnector
-                    TGComponent tgc1 = findTGComponentNoPoint(t.getOtherReferenceObjects(), 0);
-                    TGComponent tgc2 = findTGComponentNoPoint(t.getOtherReferenceObjects(), 1);
-
-                    // Find if there are other TGComponents which are not points
-                    TraceManager.addDev("\t source: " + tgc1 + "x=" + tgc1.getX() + " y=" + tgc1.getY());
-                    TraceManager.addDev("\t dest: " + tgc2 + "x=" + tgc2.getX() + " y=" + tgc2.getY());
-
-                    int index1 = tgc1.getIndexOfTGConnectingPoint(tgcon.getTGConnectingPointP1());
-                    int index2 = tgc2.getIndexOfTGConnectingPoint(tgcon.getTGConnectingPointP2());
-
-
-                    if ((index1 != -1) && (index2 != -1)) {
-                        TraceManager.addDev("Computing p1 and p2");
-                        p1 = tranSourceMap.get(t).getFreeTGConnectingPoint(index1);
-                        p2 = locMap.get(tranDestMap.get(t)).getFreeTGConnectingPoint(index2);
-                    } else if (tgcon.getTDiagramPanel() != null) {
-                        TraceManager.addDev("Index of points is not valid");
-                        TGComponent tgc3 = null;
-                        TGComponent tgc4 = null;
-
-                        // look for the connecting point in the panel
-                        tgc3 = tgcon.getTDiagramPanel().getComponentToWhichBelongs(tgcon.getTGConnectingPointP1());
-                        if ((tgc3 != null) && (tgc3.getClass() == tgc1.getClass())) {
-                            // Get equivalent tgc in new tdp
-                            tgc3 = smp.getEquivalentComponent(tgc3);
-                        }
-
-                        // look for the connecting point in the panel
-                        tgc4 = tgcon.getTDiagramPanel().getComponentToWhichBelongs(tgcon.getTGConnectingPointP2());
-                        if ((tgc4 != null) && (tgc4.getClass() == tgc2.getClass())) {
-                            // Get equivalent tgc in new tdp
-                            tgc4 = smp.getEquivalentComponent(tgc4);
-                        }
 
-                        if ((tgc3 != null) && (tgc4 != null)) {
-                            index1 = tgc3.getIndexOfTGConnectingPoint(tgcon.getTGConnectingPointP1());
-                            index2 = tgc4.getIndexOfTGConnectingPoint(tgcon.getTGConnectingPointP2());
-                            if ((index1 != -1) && (index2 != -1)) {
-                                p1 = tgc3.getFreeTGConnectingPoint(index1);
-                                p2 = tgc4.getFreeTGConnectingPoint(index2);
-                            }
-                        }
-                    }
-                }
-            }*/
 			if ((p1 == null) || (p2 == null)) {
 				if (p1 == null) {
 					p1 = tranSourceMap.get(t).closerFreeTGConnectingPoint(x, y, false, true);
@@ -614,7 +565,7 @@ public class AvatarPanelDrawer {
 						  Map<AvatarStateMachineElement, TGComponent> SMDMap, Map<AvatarStateMachineElement, TGComponent> locMap,
 						  Map<AvatarTransition, AvatarStateMachineElement> tranDestMap, Map<AvatarTransition, TGComponent> tranSourceMap,
 						  Map<Object, TGComponent> refMap,
-						  boolean useOriginalValuesFirst) {
+						  boolean useOriginalValuesFirst, boolean useOriginalPositionSMD) {
 		// TGConnectingPoint tp = new TGConnectingPoint(null, x, y, false, false);
 		//Create dummy tgcomponent
 
@@ -632,7 +583,7 @@ public class AvatarPanelDrawer {
 
 		TGComponent tgc = null;
 
-		if (asme.getReferenceObject() instanceof TGComponent) {
+		if ((asme.getReferenceObject() instanceof TGComponent) && useOriginalPositionSMD) {
 			tgc = (TGComponent) (asme.getReferenceObject());
 			newX = tgc.getX();
 			newY = tgc.getY();
@@ -920,7 +871,8 @@ public class AvatarPanelDrawer {
 				if (!SMDMap.containsKey(el)) {
                     /*TraceManager.addDev("not in map: Block " + bl.getName() + " / " + bl.getValue() +
                             " Handling next of " + asme.getExtendedName() + ": " + el.getExtendedName());*/
-					addStates(el, x + diff * i, y + ydiff, smp, bl, SMDMap, locMap, tranDestMap, tranSourceMap, refMap, useOriginalValuesFirst);
+					addStates(el, x + diff * i, y + ydiff, smp, bl, SMDMap, locMap, tranDestMap, tranSourceMap, refMap,
+							useOriginalValuesFirst, useOriginalPositionSMD);
 				}
 				i++;
 			}
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index 5ee02cfa0d58bb8948c0ab1a4afd5aa4d2c558a4..8eaefff1825c998b203e0c9ed4d60b158aac8441 100644
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -9379,9 +9379,9 @@ public class GTURTLEModeling {
 
 
 
-    public void drawPanel(AvatarSpecification avspec, AvatarDesignPanel adp, boolean useOriginalValuesFirst) {
+    public void drawPanel(AvatarSpecification avspec, AvatarDesignPanel adp, boolean useOriginalValuesFirst, boolean useOriginalPositionSMD) {
         AvatarPanelDrawer apd = new AvatarPanelDrawer();
-        apd.drawPanel(avspec, adp, useOriginalValuesFirst);
+        apd.drawPanel(avspec, adp, useOriginalValuesFirst, useOriginalPositionSMD);
     }
 
 
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 5abbd51d55a42e0939c24d4571a88abb27d54939..867acb410d5d90250b2086c2d23b16bf14074ee1 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -1913,10 +1913,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public void actionDrawAvatar(boolean useOriginalValuesFirst) {
         AvatarSpecification as = gtm.getAvatarSpecification();
         if (as != null) {
-            drawAvatarSpecification(as, useOriginalValuesFirst);
+            drawAvatarSpecification(as, useOriginalValuesFirst, true);
         }
     }
+
     public void drawAvatarSpecification(AvatarSpecification av, boolean useOriginalValuesFirst) {
+        drawAvatarSpecification(av, useOriginalValuesFirst, true);
+    }
+    public void drawAvatarSpecification(AvatarSpecification av, boolean useOriginalValuesFirst, boolean useOriginalPositionSMD) {
         DateFormat dateFormat = new SimpleDateFormat("_yyyyMMdd_HHmmss");
         Date date = new Date();
         String dateAndTime = dateFormat.format(date);
@@ -1931,7 +1935,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         AvatarDesignPanel adp = (AvatarDesignPanel) (tabs.elementAt(index));
         TraceManager.addDev("Draw Spec 3");
         adp.abdp.drawable = false;
-        gtm.drawPanel(av, adp, useOriginalValuesFirst);
+        gtm.drawPanel(av, adp, useOriginalValuesFirst, useOriginalPositionSMD);
         adp.abdp.drawable = true;
         adp.abdp.repaint();
         TraceManager.addDev("Draw Spec 4");
diff --git a/src/main/java/ui/window/JDialogProverifVerification.java b/src/main/java/ui/window/JDialogProverifVerification.java
index 5a0b16ad6c8739fe7ef688f8672eef1e18b55b37..1dce659f706f96f9c506c836b175ce252a916d81 100644
--- a/src/main/java/ui/window/JDialogProverifVerification.java
+++ b/src/main/java/ui/window/JDialogProverifVerification.java
@@ -1776,7 +1776,7 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
 
                     if (drawAvatarDesign != null) {
                         if (drawAvatarDesign.isSelected()) {
-                            mgui.drawAvatarSpecification(mgui.gtm.getAvatarSpecification(), false);
+                            mgui.drawAvatarSpecification(mgui.gtm.getAvatarSpecification(), false, false);
                         }
                     }