diff --git a/src/main/java/tmltranslator/HwNoC.java b/src/main/java/tmltranslator/HwNoC.java
index e97c1e1ab2a05e5571440d798187909f3367d6ad..1fb851cd260ec710a50a9a0d8e46c4d936aa76bb 100755
--- a/src/main/java/tmltranslator/HwNoC.java
+++ b/src/main/java/tmltranslator/HwNoC.java
@@ -144,6 +144,8 @@ public class HwNoC extends HwCommunicationNode  {
         HashMap<String, Point> map = new HashMap<>();
         placement = placement.trim();
 
+        TraceManager.addDev("Placement:" + placement);
+
         if (placement.length() == 0) {
             return map;
         }
@@ -191,9 +193,11 @@ public class HwNoC extends HwCommunicationNode  {
         for(String s: placementMap.keySet()) {
             Point p = placementMap.get(s);
             if (p.x == x && p.y == y) {
+                TraceManager.addDev("Found " + s + " for x=" + x + " y=" +y);
                 return s;
             }
         }
+        TraceManager.addDev("Returning null for x=" + x + " y=" +y);
         return null;
     }
 
diff --git a/src/main/java/tmltranslator/TMLTextSpecification.java b/src/main/java/tmltranslator/TMLTextSpecification.java
index b37c815ff50a589d5ce8a3642c59125538843e16..83e1d101cc0f6c5b502af49614daa8a572b5721e 100755
--- a/src/main/java/tmltranslator/TMLTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLTextSpecification.java
@@ -234,6 +234,12 @@ public class TMLTextSpecification<E> {
                     sb += SP + ch.getMax();
                 }
                 TraceManager.addDev("Declaration. Handling channel " + ch.getName());
+                if (ch.getOriginTask() == null) {
+                    TraceManager.addDev("Missing origin Task in " + ch.getName());
+                }
+                if (ch.getDestinationTask() == null) {
+                    TraceManager.addDev("Missing destination Task in " + ch.getName());
+                }
                 sb += SP + "OUT" + SP + ch.getOriginTask().getName() + SP + "IN" + SP + ch.getDestinationTask().getName() + CR;
 
                 if (ch.isLossy()) {
diff --git a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
index 1f1c478d0e52495ad230ac71515cd276b201dcb6..e4a67ad682940b56c46ec339b073b2ed6a83f50f 100644
--- a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
+++ b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
@@ -135,23 +135,23 @@ public class TranslatedRouter<E> {
         int i, j;
         TMLTask t;
         TMLModeling tmlm = tmlmap.getTMLModeling();
+        HwExecutionNode execNode = null;
 
 
         // MUX for the different writing tasks
         // For each writing channel of the corresponding CPU, we need MUX to be created.
         // We first get the corresponding CPU
         String nameOfExecNode = noc.getHwExecutionNode(xPos, yPos);
-        HwExecutionNode execNode = tmlmap.getTMLArchitecture().getHwExecutionNodeByName(nameOfExecNode);
-
         if (nameOfExecNode == null) {
             nameOfExecNode = "fakeCPU_" + xPos + "_" + yPos;
-        }
-
-
-        if (execNode == null) {
-            TraceManager.addDev("Could NOT find an exec node for (" + xPos + "," + yPos + ")");
         } else {
-            TraceManager.addDev("Found an exec node for (" + xPos + "," + yPos + "): " + execNode.getName());
+            execNode = tmlmap.getTMLArchitecture().getHwExecutionNodeByName(nameOfExecNode);
+
+            if (execNode == null) {
+                TraceManager.addDev("Could NOT find an exec node for (" + xPos + "," + yPos + ")");
+            } else {
+                TraceManager.addDev("Found an exec node for (" + xPos + "," + yPos + "): " + execNode.getName());
+            }
         }
 
         // Then, we need to find the channels starting from/arriving to a task mapped on this execNode
@@ -258,7 +258,7 @@ public class TranslatedRouter<E> {
         for (int portNb = 0; portNb < NB_OF_PORTS; portNb++) {
             if (fromPreviousRouters[portNb] != null) {
 
-                TaskINForDispatch inDispatch = new TaskINForDispatch("IN_" + execNode, null,
+                TaskINForDispatch inDispatch = new TaskINForDispatch("IN_" + nameOfExecNode, null,
                         null);
                 tmlm.addTask(inDispatch);
                 Vector<TMLEvent> listOfOutEvents = new Vector<TMLEvent>();
@@ -300,7 +300,7 @@ public class TranslatedRouter<E> {
             if (fromPreviousRouters[portNb] != null) {
                 for (int vcNb = 0; vcNb < nbOfVCs; vcNb++) {
 
-                    TaskINForVC taskINForVC = new TaskINForVC("IN_" + execNode + "_" + vcNb, null,
+                    TaskINForVC taskINForVC = new TaskINForVC("IN_" + nameOfExecNode + "_" + vcNb, null,
                             null);
                     tmlm.addTask(taskINForVC);
                     dispatchInVCs[portNb][vcNb] = taskINForVC;
@@ -341,7 +341,7 @@ public class TranslatedRouter<E> {
                 TranslatedRouter routerToConnectWith = main.getRouterFrom(xPos, yPos, portNb);
                 if (routerToConnectWith != null) {
                     if (TMAP2Network.hasRouterAt(xPos, yPos, portNb, noc.size)) {
-                        TaskOUTForVC taskOUTForVC = new TaskOUTForVC("OUTVC_" + execNode + "_" + vcNb, null,
+                        TaskOUTForVC taskOUTForVC = new TaskOUTForVC("OUTVC_" + nameOfExecNode + "_" + vcNb, null,
                                 null);
                         tmlm.addTask(taskOUTForVC);
                         dispatchOutVCs[portNb][vcNb] = taskOUTForVC;
@@ -375,7 +375,7 @@ public class TranslatedRouter<E> {
         for (int portNb = 0; portNb < NB_OF_PORTS; portNb++) {
             if (toNextRouters[portNb] != null) {
 
-                TaskOUTForDispatch outDispatch = new TaskOUTForDispatch("OUT_" + execNode, null,
+                TaskOUTForDispatch outDispatch = new TaskOUTForDispatch("OUT_" + nameOfExecNode, null,
                         null);
                 tmlm.addTask(outDispatch);