diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java
index bef4f42778b5c9a997dd913ffc1255d906a4476e..b685f7d39dae0a6ad55a268f1d089ad553dbd700 100644
--- a/src/main/java/ui/TDiagramPanel.java
+++ b/src/main/java/ui/TDiagramPanel.java
@@ -1138,7 +1138,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     // true if connector not added
     public void stopAddingConnector(boolean b) {
-        if (p1 != null) {
+        if ((p1 != null) && b) {
             p1.setFree(true);
         }
         x1 = -1;
diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java
index 8bfa5cbdba9bd9cc5ccd3faa494abeb179b80cf8..ab8b0928262c3e6b33ccf1cc0005979d172426ca 100644
--- a/src/main/java/ui/TGComponent.java
+++ b/src/main/java/ui/TGComponent.java
@@ -3443,6 +3443,7 @@ public abstract class TGComponent  extends AbstractCDElement implements /*CDElem
             TGConnector connector = pt.getReferenceToConnector();
             TGConnectingPoint cp;
             if (connector != null) {
+                //TraceManager.addDev("Non null reference");
                 if (out) {
                     cp = connector.getTGConnectingPointP1();
                 } else {
@@ -3451,6 +3452,10 @@ public abstract class TGComponent  extends AbstractCDElement implements /*CDElem
                 if (cp == pt) {
                     cpt++;
                 }
+            } else {
+                if (!pt.isFree()) {
+                    //TraceManager.addDev("Null reference on non free cp");
+                }
             }
         }
         return cpt;
diff --git a/src/main/java/ui/TGConnectingPoint.java b/src/main/java/ui/TGConnectingPoint.java
index d4581765403a147b90a738be99ef69a1a0385104..f03d4a9357267d3d76e86d0800e67d146204efc2 100644
--- a/src/main/java/ui/TGConnectingPoint.java
+++ b/src/main/java/ui/TGConnectingPoint.java
@@ -40,6 +40,7 @@
 package ui;
 
 import myutil.GraphicLib;
+import myutil.TraceManager;
 
 import java.awt.*;
 
@@ -88,7 +89,7 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement*
     public static final int SOUTH=2;
     public static final int WEST=3;
 
-    protected TGConnector referenceToConnector;
+    private TGConnector referenceToConnector;
 
     private boolean source = false;
 
@@ -277,9 +278,9 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement*
     }
 
     public void setFree(boolean b) {
-        /*TraceManager.addDev("Setting connecting point as free=" + b + " point=" + this);
+        //TraceManager.addDev("Setting connecting point as free=" + b + " point=" + this);
 
-          for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
+        /*for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
           TraceManager.addDev(ste.toString());
           }*/
 
@@ -289,6 +290,7 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement*
         }
 
         if (free) {
+            //TraceManager.addDev("Setting ref to connector to null");
             referenceToConnector = null;
         }
 
@@ -334,6 +336,7 @@ public class TGConnectingPoint extends AbstractCDElement /*implements CDElement*
     //fin DG
 
     public void setReferenceToConnector( TGConnector _ref )     {
+        //TraceManager.addDev("Setting ref to connector to " + _ref);
         referenceToConnector = _ref;
     }
 
diff --git a/src/main/java/ui/TGConnector.java b/src/main/java/ui/TGConnector.java
index a949393331bf47ae08675b07ee8f17dcd7640ce0..4bc7d7eead4afc4dde6290e6b1df6a02b62e4249 100644
--- a/src/main/java/ui/TGConnector.java
+++ b/src/main/java/ui/TGConnector.java
@@ -251,6 +251,7 @@ public abstract class TGConnector extends TGCScalableWithInternalComponent {
     }
 
     public void setP1(TGConnectingPoint p) {
+        //TraceManager.addDev("Setting p1");
         p1 = p;
         p1.setReferenceToConnector(this);
     }
diff --git a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java
index 3608dda1b5fec7575e80e57c18720af03ad8d40f..e9f497e0b0b13b0ce47155c5da19ce179344f297 100644
--- a/src/main/java/ui/avatarad/AvatarADConnectingPoint.java
+++ b/src/main/java/ui/avatarad/AvatarADConnectingPoint.java
@@ -38,6 +38,7 @@
 
 package ui.avatarad;
 
+import myutil.TraceManager;
 import ui.CDElement;
 import ui.TGComponentManager;
 import ui.TGConnectingPoint;
@@ -63,9 +64,13 @@ public class AvatarADConnectingPoint extends TGConnectingPointWidthHeight {
     }
 
     public boolean isCompatibleWith(int type, TGConnectingPoint outPoint) {
+        //TraceManager.addDev("isCompatibleWithExtended");
+
+
         if (getFather() instanceof AvatarADActivity) {
             AvatarADActivity act = (AvatarADActivity)getFather();
             int nb = act.getNbOfOccupiedPoints(outPoint == null);
+            //TraceManager.addDev("Nb of occupied points " + nb + " in case out? " + (outPoint == null));
             if (nb > 0) {
                 return false;
             }