diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java
index 26731cbf4916b51d47476ad16c9f847061a3f363..a7c463b49cb155fa942cb2496ff37f843dad3f0c 100644
--- a/src/main/java/ui/ActionPerformer.java
+++ b/src/main/java/ui/ActionPerformer.java
@@ -1094,4 +1094,3 @@ public class ActionPerformer {
         }
     }
 }
-
diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java
index 87f09954f2a08fcb9ae267a7b4d0f609a2f68f71..08ffd555b83809da2ba0f1d80ff6f16d192718ed 100755
--- a/src/main/java/ui/TDiagramPanel.java
+++ b/src/main/java/ui/TDiagramPanel.java
@@ -38,10 +38,9 @@
 
 package ui;
 
-import myutil.GenericTree;
-import myutil.GraphicLib;
-import myutilsvg.SVGGraphics;
-import myutil.TraceManager;
+import myutil.*;
+import myutilsvg.*;
+import ui.atd.ATDAttack;
 import ui.atd.ATDBlock;
 import ui.avatarad.AvatarADActivity;
 import ui.avatarbd.AvatarBDBlock;
@@ -52,6 +51,7 @@ import ui.avatarmad.AvatarMADAssumption;
 import ui.avatarrd.AvatarRDRequirement;
 import ui.avatarsmd.AvatarSMDState;
 import ui.cd.*;
+import ui.ftd.FTDFault;
 import ui.eln.sca_eln.*;
 import ui.syscams.*;
 import ui.ncdd.NCEqNode;
@@ -182,7 +182,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     protected int y2;
     protected Vector<Point> listPoint;
     protected TGConnectingPoint p1, p2;
-   /* protected CAMSConnectingPoint cp1, cp2;*/
+    /* protected CAMSConnectingPoint cp1, cp2;*/
     protected int type;
 
     // For component selection
@@ -1274,7 +1274,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         ySel = y;
         for (TGComponent tgc : this.componentList)
             if (tgc.isSelected()) {
-                if ((xSel-oldX != 0 ) || (ySel-oldY != 0 )) {
+                if ((xSel - oldX != 0 ) || (ySel - oldY != 0 )) {
                     /*TraceManager.addDev("" + tgc + " is selected oldX=" + xSel +
                             " oldY=" + oldY + " xSel=" + xSel + " ySel=" + ySel);*/
                 }
@@ -2315,7 +2315,6 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                     actionOnRemove(t);
                     tgcon.getTGConnectingPointP1().setFree(true);
                     tgcon.getTGConnectingPointP2().setFree(true);
-                    System.out.println("removing...");
                     TraceManager.addDev("Removed one connector!");
                     for (int k = 0; k < tgcon.getNbConnectingPoint(); k++)
                         removeOneConnector(tgcon.tgconnectingPointAtIndex(k));
@@ -2595,7 +2594,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                     || (o instanceof TMLCRecordComponent && this.checkTMLCRecordComponent((TMLCRecordComponent) o, name))
                     || (o instanceof TMLCCompositeComponent && this.checkTMLCCompositeComponent((TMLCCompositeComponent) o, name))
                     || (o instanceof TMLTaskInterface && this.checkTMLTaskInterface((TMLTaskInterface) o, name))
-                	|| (o instanceof SysCAMSBlockTDF && this.checkSysCAMSBlockTDFComponent((SysCAMSBlockTDF) o, name))
+                    || (o instanceof SysCAMSBlockTDF && this.checkSysCAMSBlockTDFComponent((SysCAMSBlockTDF) o, name))
                     || (o instanceof SysCAMSBlockDE && this.checkSysCAMSBlockDEComponent((SysCAMSBlockDE) o, name))
                     || (o instanceof SysCAMSCompositeComponent && this.checkSysCAMSCompositeComponent((SysCAMSCompositeComponent) o, name))
                     || (o instanceof ELNComponentResistor && this.checkELNComponentResistor((ELNComponentResistor) o, name))
@@ -2608,6 +2607,8 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                     || (o instanceof ELNComponentIndependentVoltageSource && this.checkELNComponentIndependentVoltageSource((ELNComponentIndependentVoltageSource) o, name))
                     || (o instanceof ELNComponentIndependentCurrentSource && this.checkELNComponentIndependentCurrentSource((ELNComponentIndependentCurrentSource) o, name))
                     || (o instanceof ATDBlock && this.checkATDBlock((ATDBlock) o, name))
+                    || (o instanceof ATDAttack && this.checkATDAttack((ATDAttack) o, name))
+                    || (o instanceof FTDFault && this.checkFTDFault((FTDFault) o, name))
                     || (o instanceof AvatarBDBlock && this.checkAvatarBDBlock((AvatarBDBlock) o, name))
                     || (o instanceof AvatarCDBlock && this.checkAvatarCDBlock((AvatarCDBlock) o, name))
                     || (o instanceof AvatarSMDState && this.checkAvatarSMDState((AvatarSMDState) o, name))
@@ -2657,7 +2658,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         }
         
         public boolean checkSysCAMSBlockTDFComponent(SysCAMSBlockTDF o, String name) {
-        	return false;
+      		return false;
         }
         
         public boolean checkSysCAMSBlockDEComponent(SysCAMSBlockDE o, String name) {
@@ -2707,6 +2708,14 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         public boolean checkATDBlock(ATDBlock o, String name) {
             return false;
         }
+        
+        public boolean checkATDAttack(ATDAttack o, String name) {
+            return false;
+        }
+
+        public boolean checkFTDFault(FTDFault o, String name) {
+            return false;
+        }
 
         public boolean checkAvatarBDBlock(AvatarBDBlock o, String name) {
             return false;
@@ -2877,6 +2886,22 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     	});
     }
     
+    public String findAttackName(String name) {
+        return this.findGoodName(name, new NameChecker() {
+            public boolean checkATDAttack(ATDAttack o, String name) {
+                return o.getValue().equals(name);
+            }
+        });
+    }
+
+    public String findFaultName(String name) {
+        return this.findGoodName(name, new NameChecker() {
+            public boolean checkFTDFault(FTDFault o, String name) {
+                return o.getValue().equals(name);
+            }
+        });
+    }
+    
     public String findBlockName(String name) {
         return this.findGoodName(name, new NameChecker() {
             public boolean checkATDBlock(ATDBlock o, String name) {
@@ -3614,6 +3639,53 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         h = Math.min(h, getHeight() - y);
 
 
+		/*StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" standalone=\"no\"?>\n");
+        sb.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
+        //sb.append(" width=\"" + (w+x) + "\" height=\"" + (h+y) + "\" viewbox=\"" + x + " " + y + " " + w + " " + h + "\">\n");
+        sb.append("<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"");
+        sb.append(" width=\"" + (w + x) + "\" height=\"" + (h + y) + "\" viewbox=\"" + x + " " + y + " " + w + " " + h + "\">\n");
+
+        // Issue #14 point 10: Somehow the last graphics that was used is different than the actual one leading
+        // to an error in calculating string lengths
+        final SVGGraphics svgg = new SVGGraphics((Graphics2D) getGraphics());
+//      SVGGraphics svgg = new SVGGraphics((Graphics2D)lastGraphics);
+
+        RepaintManager.currentManager(this).setDoubleBufferingEnabled(false);
+        //this.paint(svgg);
+        //TraceManager.addDev("Painting for svg");
+        basicPaintMyComponents(svgg);
+        //TraceManager.addDev("Painting for svg done");
+        sb.append(svgg.getSVGString());
+        RepaintManager.currentManager(this).setDoubleBufferingEnabled(true);
+
+        sb.append("</svg>");
+
+        return sb.toString();*/
+
+        SVGGeneration gen = new SVGGeneration();
+        return gen.getSVGString(this);
+    }
+
+    public String oldSvgCapture() {
+        int w = this.getWidth();
+        int h = this.getHeight();
+        int x = getRealMinX();
+        int y = getRealMinY();
+        w = getRealMaxX() - x;
+        h = getRealMaxY() - y;
+        //TraceManager.addDev("x=" + x + " y=" + y + " w=" + w + " h=" + h + " getWidth = " + this.getWidth() + " getHeight = " + this.getHeight());
+        x = x - 5;
+        y = y - 5;
+        w = w + 10;
+        h = h + 10;
+        w = Math.max(0, w);
+        h = Math.max(0, h);
+        x = Math.max(5, x);
+        y = Math.max(5, y);
+        w = Math.min(w, getWidth() - x);
+        h = Math.min(h, getHeight() - y);
+
+
         StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" standalone=\"no\"?>\n");
         sb.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
         //sb.append(" width=\"" + (w+x) + "\" height=\"" + (h+y) + "\" viewbox=\"" + x + " " + y + " " + w + " " + h + "\">\n");
diff --git a/src/main/java/ui/TGComponentManager.java b/src/main/java/ui/TGComponentManager.java
index 0ca922edc5b2cd52cea07b13c7852754fd3fb4a4..5f95fe9c2fbe1839ac0e4e773885ec0baba64dbc 100644
--- a/src/main/java/ui/TGComponentManager.java
+++ b/src/main/java/ui/TGComponentManager.java
@@ -2313,31 +2313,31 @@ public class TGComponentManager {
                 break;
             case CONNECTOR_INTERACTION:
                 tgc = new TGConnectorInteraction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
             case CONNECTOR_MESSAGE_ASYNC_SD:
                 tgc = new ui.sd.TGConnectorMessageAsyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
             case CONNECTOR_MESSAGE_SYNC_SD:
                 tgc = new ui.sd.TGConnectorMessageSyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
             case CONNECTOR_RELATIVE_TIME_SD:
                 tgc = new ui.sd.TGConnectorRelativeTimeSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
             case CONNECTOR_MESSAGE_ASYNC_SDZV:
                 tgc = new ui.sd2.TGConnectorMessageAsyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
             case CONNECTOR_MESSAGE_SYNC_SDZV:
                 tgc = new ui.sd2.TGConnectorMessageSyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
             case CONNECTOR_RELATIVE_TIME_SDZV:
                 tgc = new ui.sd2.TGConnectorRelativeTimeSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
+                //TraceManager.addDev("Connector interaction");
                 break;
 
             case CONNECTOR_ACTOR_UCD:
@@ -2471,4 +2471,3 @@ public class TGComponentManager {
     }*/
 
 } // Class
-
diff --git a/src/main/java/ui/TGConnectingPointWidthHeight.java b/src/main/java/ui/TGConnectingPointWidthHeight.java
index ce23f4c502742f785e0f7fefa07f3a7fd9639347..2aa78f4151b7062f88521b0de266175b6a880d71 100755
--- a/src/main/java/ui/TGConnectingPointWidthHeight.java
+++ b/src/main/java/ui/TGConnectingPointWidthHeight.java
@@ -84,4 +84,3 @@ public class TGConnectingPointWidthHeight extends TGConnectingPoint{
     	return h;
     }
 } // Class
-
diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java
index 6920526544aab2d65975e39fc58eac37f7a22365..58b8b19922ebb8c43f0d464088add4ca4a9d404c 100644
--- a/src/main/java/ui/TGUIAction.java
+++ b/src/main/java/ui/TGUIAction.java
@@ -1324,7 +1324,6 @@ public class TGUIAction extends AbstractAction {
     }
 
     public void actionPerformed(ActionEvent evt)  {
-        //System.out.println("Action performed");
         if (listeners != null) {
             Object[] listenerList = listeners.getListenerList();
 
@@ -1352,5 +1351,3 @@ public class TGUIAction extends AbstractAction {
         listeners.remove(ActionListener.class, l);
     }
 }
-
-
diff --git a/src/main/java/ui/util/IconManager.java b/src/main/java/ui/util/IconManager.java
index 4e7784cd5c5eb47bdd484eb0dc00fcd517a15eaf..0cc4c9ee26a18425b2115c52735c34ead9201e8c 100755
--- a/src/main/java/ui/util/IconManager.java
+++ b/src/main/java/ui/util/IconManager.java
@@ -181,14 +181,18 @@ public class IconManager {
 
     // Image of the help button for the ports (Solange)
     public static ImageIcon imgic2111; //New icon created by Solange
-
-	// SystemC-AMS
-    public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006, imgic8007,	imgic8008;
+    
+    // SystemC-AMS
+    public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006, imgic8007, imgic8008;
 
     // ELN
     public static ImageIcon imgic8010, imgic8011, imgic8012, imgic8013, imgic8014, imgic8015, imgic8016, imgic8017, imgic8018;
     
     //private static String icon7 = "turtle_large.gif";
+    private static String ttoolStringIcon = "starting_logo.gif";
+    public static ImageIcon ttoolImageIcon;
+    public static Image ttoolImage;
+    
     private static String icon8 = "turtle_16.gif";
     private static String icon9 = "diplodocus2_16.gif";
     //Added by Solange
@@ -691,7 +695,7 @@ public class IconManager {
         if (url != null) {
             return new ImageIcon(url);
         } else {
-            System.out.println("Could not load " + s);
+        
         }
 
         return null;
@@ -701,13 +705,17 @@ public class IconManager {
         ImageIcon imc = new ImageIcon(IconManager.icon12);
         Image im = imc.getImage();
         if (im == null) {
-            System.out.println("Cannot load icons");
+        
         } else {
-            System.out.println("Icons loaded");
+        
         }
     }
 
     public static void loadImg() {
+    
+    	ttoolImageIcon = getIcon(ttoolStringIcon);
+        ttoolImage = ttoolImageIcon.getImage();
+    
         imgic8 = getIcon(icon8);
         imgic9 = getIcon(icon9);
         if (imgic8 != null) {
@@ -723,8 +731,13 @@ public class IconManager {
         imgic1 = getIcon(icon1);
 
         //Added by Solange
-        img0 = imgic0.getImage();
-        img1 = imgic1.getImage();
+        if ( imgic0 != null ) {
+        	img0 = imgic0.getImage();
+        }
+
+        if ( imgic1 != null ) {
+        	img1 = imgic1.getImage();
+        }
 
         imgic13 = getIcon(icon13);
         imgic14 = getIcon(icon14);
@@ -1180,5 +1193,3 @@ public class IconManager {
     }
 
 } // Class
-
-