diff --git a/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java
index e334fbe4f61ed843ffda4cb052c6b8da3a059bc9..2aa0cbeb862ad0ce207ac90859060e887980918c 100644
--- a/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java
+++ b/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java
@@ -40,6 +40,9 @@ package avatartranslator.mutation;
 
 import avatartranslator.*;
 
+import java.util.LinkedList;
+import java.util.List;
+
 /**
  * Class MdRandomMutation
  * Creation: 28/06/2022
@@ -65,6 +68,25 @@ public class RmActionOnSignalMutation extends ActionOnSignalMutation implements
         if (aaos == null) {
             throw new ApplyMutationException("no such action on signal in block " + getBlockName());
         }
+        List<AvatarStateMachineElement> asmElements = asm.getListOfElements();
+        List<AvatarStateMachineElement> asmElementsToRemove = new LinkedList<>();
+        //adding to the asmElementsToRemove list the transitions leading to the action on signal operator
+        for (AvatarStateMachineElement element : asmElements) {
+            if (element.getNexts().contains(aaos)) {
+                for (AvatarStateMachineElement element2 : asmElements) {
+                    if (element2.getNexts().contains(element)) {
+                        element2.removeNext(element);
+                    }
+                }
+                asmElementsToRemove.add(element);
+            }
+            //adding to the asmElementsToRemove list the transitions starting from the action on signal operator
+            asmElementsToRemove.addAll(aaos.getNexts());
+        }
+        //removing the incoming and outgoing transitions from the Avatar specification
+        for (AvatarStateMachineElement element : asmElementsToRemove){
+            asm.removeElement(element);
+        }
         asm.removeElement(aaos);
     }
 
diff --git a/src/main/java/avatartranslator/mutation/RmStateMutation.java b/src/main/java/avatartranslator/mutation/RmStateMutation.java
index 22c77e466bececad9b1a1f85654958f881bf8721..7fbfd4e1e8451b00c517149753c81c3d626a8f2b 100644
--- a/src/main/java/avatartranslator/mutation/RmStateMutation.java
+++ b/src/main/java/avatartranslator/mutation/RmStateMutation.java
@@ -63,6 +63,7 @@ public class RmStateMutation extends StateMutation implements RmMutation {
         AvatarStateMachine asm = getAvatarStateMachine(_avspec);
         List<AvatarStateMachineElement> asmElements = asm.getListOfElements();
         List<AvatarStateMachineElement> asmElementsToRemove = new LinkedList<>();
+        //adding to the asmElementsToRemove list the transitions leading to the state
         for (AvatarStateMachineElement element : asmElements) {
             if (element.getNexts().contains(state)) {
                 for (AvatarStateMachineElement element2 : asmElements) {
@@ -72,13 +73,10 @@ public class RmStateMutation extends StateMutation implements RmMutation {
                 }
                 asmElementsToRemove.add(element);
             }
-            if (element == state) {
-                for (AvatarStateMachineElement element3 : state.getNexts()) {
-                    asmElementsToRemove.add(element3);
-                }
-            }
+            //adding to the asmElementsToRemove list the transitions starting from the state
+            asmElementsToRemove.addAll(state.getNexts());
         }
-        System.out.println(asmElementsToRemove.toString());
+        //removing the incoming and outgoing transitions from the Avatar specification
         for (AvatarStateMachineElement element : asmElementsToRemove){
             asm.removeElement(element);
         }