diff --git a/restcomm/restcomm.telephony/src/main/java/org/restcomm/connect/telephony/Call.java b/restcomm/restcomm.telephony/src/main/java/org/restcomm/connect/telephony/Call.java
index <HASH>..<HASH> 100644
--- a/restcomm/restcomm.telephony/src/main/java/org/restcomm/connect/telephony/Call.java
+++ b/restcomm/restcomm.telephony/src/main/java/org/restcomm/connect/telephony/Call.java
@@ -1209,6 +1209,9 @@ public final class Call extends RestcommUntypedActor {
                 logger.warning(strBuffer.toString());
             }
             msController.tell(new CloseMediaSession(), source);
+            //Github issue 2261 - https://github.com/RestComm/Restcomm-Connect/issues/2261
+            //Set a ReceivedTimeout duration to make sure call doesn't block waiting for the response from MmsCallController
+            context().setReceiveTimeout(Duration.create(2000, TimeUnit.MILLISECONDS));
         }
     }
 
@@ -2314,7 +2317,7 @@ public final class Call extends RestcommUntypedActor {
         } else if (is(stopping)) {
             fsm.transition(message, completed);
         } else {
-            if (!is(leaving))
+            if (!is(leaving) && !is(canceling) && !is(canceled))
                 fsm.transition(message, stopping);
         }
     }
Patch for transition exception from cancelling to stopping
This resolve #RESTCOMM-<I>