diff --git a/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd b/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd
index e0d5630c2ab762465db978be0ab5322378444940..0394b45a0223f9d1bd1f0f0204100c1b65c30ea5 100644
--- a/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd
+++ b/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd
@@ -94,10 +94,19 @@ aspect BalloonExecution{
                           idxC++;
                       }
 
+        //              System.out.println("> bmp: " + place.getId());
+        //              System.out.println("> bmp: " + bmp.getPlace().getId());
+        //              System.out.println("> num marking: " + bmp.getNumBalloonMarkingNoTransform());
+        //              System.out.println("> marking " + idx + ": " + bmp.getBalloonMarking(idx));
                       BalloonToken bt=bmp.getBalloonMarking(idx);
 
                       inToken.add(bt);
-                      bmp.getBalloonMarking(idx).removeSelf();
+                      System.out.println("[Engine] Removing token: " + bmp.getBalloonMarking(idx).getValue() + " from " + place.getId());
+                      //bmp.getBalloonMarking(idx).removeSelf();
+                      // System.out.println(bmp.getNumBalloonMarking());
+                      bmp.getBalloonMarkingList().removeChild(idx);
+                      // System.out.println(bmp.getNumBalloonMarking());
+
                   }
 
                   BalloonTransition balloonTransition=callbackStorage.resolveBalloonTransition(transition);
@@ -156,6 +165,11 @@ aspect BalloonExecution{
                       }
                   }
 
+                 // for(BalloonToken delToken : inToken){
+                 //   System.out.println("[Engine] Removing token: " + delToken.getValue());
+                //    delToken.removeSelf();
+                //  }
+
                   if(requireFlush){
                       // flush the entire marking tree
                       this.flushTreeCache();
diff --git a/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag b/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag
index 6ae768ac3db92f6ef60bef05c9f1424f79cc2149..d43ffcff9774fa70938914bc3c661e1dfadbe7c5 100644
--- a/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag
+++ b/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag
@@ -124,31 +124,17 @@ aspect BalloonMarking {
 
     syn boolean BalloonMarking.isBalloonEnabled(Transition t) {
 
-        /*int inArcCount = 0;
-        int filledInPlaceCount = 0;
-
-        for (Arc a : this.getPetriNet().allArcs()) {
-            if (a.getTarget().getId().equals(t.getId())) {
-
-                inArcCount++;
-                for (BalloonMarkedPlace bmp : this.getPlaceList()) {
-                    if (bmp.getPlace().getId().equals(a.getSource().getId())) {
-                        if (bmp.getNumBalloonMarking() > 0) {
-                            filledInPlaceCount++;
-                        }
-                    }
-                }
-            }
-        }
-
-        if (inArcCount == filledInPlaceCount) {
-            return true;
-        }*/
-
         for (Place place : t.incomingPlaces()) {
-            System.out.println(">>>> Incomming: " + place.getId() + " -- " + marking(place).size());
+            //System.out.println(">>> Incomming Place: " + place.getId() + " -- " + marking(place).size());
             if (marking(place).size() == 0) return false;
         }
+
+        for(RefPlace refPlace : t.incomingRefPlaces()){
+            List<String> rMarking = marking(refPlace.originPlace());
+            //System.out.println(">>> Incomming Place (R): " + refPlace.getId() + " -- " + rMarking.size());
+            if (rMarking.size() == 0) return false;
+        }
+
         return true;
     }
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java
index c7183a72fa0cac74ebd1c8dbacc6e17799ef7306..3449a092e52f815fc2ec392a92391da03acc1b1e 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java
@@ -18,15 +18,11 @@ public class DiNeRosDefaultNode extends DiNeRosNode{
     }
 
     @Override
-    protected void nodeLoop() {
-
-        System.out.println("No node loop implemented ..");
-
-    }
+    protected void nodeLoop() {}
 
     protected TransitionSelectionResult onChange(List<Transition> enabledTransitions){
 
-        printTransitions(enabledTransitions);
+        // printTransitions(enabledTransitions);
 
         if(enabledTransitions.size() == 0){
             return new FiringSelectionNone();
@@ -39,7 +35,7 @@ public class DiNeRosDefaultNode extends DiNeRosNode{
 
     protected TransitionSelectionResult onStartupEnded(List<Transition> enabledTransitions){
 
-        printTransitions(enabledTransitions);
+        // printTransitions(enabledTransitions);
 
         if(enabledTransitions.size() == 0){
             return new FiringSelectionNone();
diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
index 810bafad75316dfb3e0b12d1140e4e75ab636ea0..b59f7428e1c227a274ff7b82647aa02bb74d36a2 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
@@ -214,6 +214,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
                 @Override
                 public void onSuccess(StringServiceResponse stringServiceResponse) {
                     System.out.println("[DiNeROS-Node] [" + nodeName + "] Received response from service: " + serviceName);
+                    System.out.println("MARKING BEFORE APP:" + marking.print());
                     bmpSource.getBalloonMarking(0).removeSelf();
                     bmpTarget.addBalloonMarking(new BalloonToken(stringServiceResponse.getOutput(), System.currentTimeMillis()));
                     marking.callServiceIfRequest(bmpTarget, self);
@@ -224,7 +225,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
                     } else {
                         self.notify(new DiNeRosEvent(DiNeRosEventTypes.NOTIFICATION_MARKING_CHANGE));
                     }
-                    serviceClient.shutdown();
+                    // serviceClient.shutdown();
                 }
 
                 @Override
@@ -270,9 +271,9 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
             }
         }
 
-        //for(Transition t : signalFilteredTransitions){
-        //    System.out.println("Enabled: " + t.getId());
-       // }
+        for(Transition t : signalFilteredTransitions){
+            System.out.println("Enabled: " + t.getId());
+        }
 
         return signalFilteredTransitions;
     }