diff --git a/build.gradle b/build.gradle
index 32ff87ebd78416b9397a39a35906e4d7e3c48a0c..35140f8d8f9c06e79aa964b5675c415382985e8e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -44,6 +44,9 @@ dependencies {
     implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.22'
     implementation group: 'com.thaiopensource', name: 'jing', version: '20091111'
     implementation 'org.jetbrains:annotations:19.0.0'
+    // https://mvnrepository.com/artifact/xalan/xalan
+    implementation group: 'xalan', name: 'xalan', version: '2.7.2'
+
 
     compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
 
diff --git a/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java b/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
index cba194517949471ad2fa77062af54541c5cad88c..5e25f7f576d4629325a2ac89ae81cf34dd885e18 100644
--- a/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
+++ b/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
@@ -34,7 +34,6 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
         for (Transition transition : petriNet.allTransitions()) {
 
             InputSignalTransition channelIst = transition.asInputSignalTransition();
-            // logger.error("infos: " + channelIst.getTransitionInformation());
 
             if (channelIst.getTransitionInformation().getType().equals(PnmlConstants.TRANSITION_TYPE_TOPIC)) {
 
@@ -44,7 +43,6 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
 
                 transitionsToRemove.add(transition);
 
-
                 // STEP 1: Get location/subnet of source/target - places
                 String inLocation = null;
                 String outLocation = null;
@@ -94,8 +92,6 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
                 // attributized infos need to be written back to XML
                 JastAddList<ToolInfo> outputToolInfoJastAddList = new JastAddList<>();
 
-                targetIst.setToolspecificList(outputToolInfoJastAddList);
-
                 if (channelIst.getTransitionInformation().getOutputLimit() >= 0) {
                     targetIst.getTransitionInformation().setType(PnmlConstants.TRANSITION_TOPIC_TYPE_LIMITED_IN);
                     outputToolInfoJastAddList.add(buildToolSpecifics(PnmlConstants.TRANSITION_TOPIC_TYPE_LIMITED_IN, outLocation, outSubNet,
@@ -106,9 +102,10 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
                             channelIst.getTransitionInformation().getInputLimit(), channelIst.getTransitionInformation().getOutputLimit(), null));
                 }
 
+                targetIst.setToolspecificList(outputToolInfoJastAddList);
 
                 // STEP 2: Reconnect Input Signals
-                for(InputSignalBinding isb : channelIst.getMutualInputSignalBindingList()){
+                for(InputSignalBinding isb : channelIst.getStaticInputSignalBindingList()){
 
                     InputSignalBinding newIsb = new InputSignalBinding();
                     newIsb.setInputSignalValue(isb.getInputSignalValue());
@@ -122,14 +119,14 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
                 // STEP 3: Get all incoming arcs and connect them to new output transition
                 for (Arc arc : channelIst.getInArcList().toArray(new Arc[0])) {
                     arc.setTarget(sourceIst);
-                    logger.error("###");
+                    //logger.error("###");
                     //break;
                 }
 
                 // STEP 4: Gel all outgoing arcs and connect them to new input transition
                 for (Arc arc : channelIst.getOutArcList().toArray(new Arc[0])) {
                     arc.setSource(targetIst);
-                    logger.error("+++");
+                    //logger.error("+++");
                     //break;
                 }
 
@@ -191,23 +188,25 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
 
             Element bindings = doc.createElement("inputsignalbindings");
 
-            for(InputSignalBinding isb : inputSignalBindings){
+            if(inputSignalBindings != null) {
+                for (InputSignalBinding isb : inputSignalBindings) {
 
-                Element binding = doc.createElement("inputsignalbinding");
+                    Element binding = doc.createElement("inputsignalbinding");
 
-                Element transitionID = doc.createElement("transitionID");
-                transitionID.appendChild(doc.createTextNode(isb.getTransitionID()));
-                binding.appendChild(transitionID);
+                    Element transitionID = doc.createElement("transitionID");
+                    transitionID.appendChild(doc.createTextNode(isb.getTransitionID()));
+                    binding.appendChild(transitionID);
 
-                Element inputsignalID = doc.createElement("inputsignalID");
-                inputsignalID.appendChild(doc.createTextNode(isb.getInputSignalID()));
-                binding.appendChild(inputsignalID);
+                    Element inputsignalID = doc.createElement("inputsignalID");
+                    inputsignalID.appendChild(doc.createTextNode(isb.getInputSignalID()));
+                    binding.appendChild(inputsignalID);
 
-                Element initialvalue = doc.createElement("initialvalue");
-                initialvalue.appendChild(doc.createTextNode(String.valueOf(isb.getInputSignalValue())));
-                binding.appendChild(initialvalue);
+                    Element initialvalue = doc.createElement("initialvalue");
+                    initialvalue.appendChild(doc.createTextNode(String.valueOf(isb.getInputSignalValue())));
+                    binding.appendChild(initialvalue);
 
-                bindings.appendChild(binding);
+                    bindings.appendChild(binding);
+                }
             }
 
             rootElement.appendChild(bindings);
@@ -222,6 +221,8 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
             toolInfo.setVersion("0.0.1");
             toolInfo.setTool("de.tudresden.inf.st.pnml.distributedPN");
 
+            System.out.println("ToolInfo: " + toolInfo.getFormattedXMLBuffer().toString());
+
             return toolInfo;
         } catch (ParserConfigurationException | TransformerConfigurationException pce) {
             pce.printStackTrace();
@@ -256,7 +257,7 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
             logger.info("Arc: " + a.getId() + " -- source: " + a.getSource().getName().getText() + " -- target: " + a.getTarget().getName().getText());
         }
 
-        logger.info("--------------- SIGNALS ---------------");
+        logger.info("--------------- SIGNALS (STATIC)---------------");
 
         for (Transition t : petriNet.allTransitions()) {
             InputSignalTransition ist = t.asInputSignalTransition();
@@ -265,5 +266,15 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
                 ist.getStaticInputSignalBindingList().forEach(inputSignalBinding -> logger.info(" (" + t.getName().getText() + ") Signal: " + inputSignalBinding.getInputSignalID()));
             }
         }
+
+        logger.info("--------------- SIGNALS (MUTUAL)---------------");
+
+        for (Transition t : petriNet.allTransitions()) {
+            InputSignalTransition ist = t.asInputSignalTransition();
+
+            if (ist != null && ist.getMutualInputSignalBindingList() != null) {
+                ist.getMutualInputSignalBindingList().forEach(inputSignalBinding -> logger.info(" (" + t.getName().getText() + ") Signal: " + inputSignalBinding.getInputSignalID()));
+            }
+        }
     }
 }
diff --git a/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java b/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java
index 2c06d896d58d54029fc4a1eccc80e714f0933684..bed65d06d8a158f104405d2eb1a5f3403f2bd4bb 100644
--- a/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java
+++ b/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java
@@ -36,8 +36,6 @@ public class IoPetriNetPostProcessor implements PostProcessor<PetriNet> {
 
     private static JastAddList<InputSignalBinding> parseInputSignalBindingDefinitionsInternal(Document doc) {
 
-        logger.error("!!!");
-
         NodeList isBindingDefList = doc.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDINGS_KEY);
         JastAddList<InputSignalBinding> jastAddBindingList = new JastAddList<>();