diff --git a/doc/report/figures/fsm/agent_beginning.gv b/doc/report/figures/fsm/agent_beginning.gv
index 6920556dcbdb1852057cd98480f466d053a7ea3d..b079a4fe17d39f919e5f97aec12653ac77f19a81 100644
--- a/doc/report/figures/fsm/agent_beginning.gv
+++ b/doc/report/figures/fsm/agent_beginning.gv
@@ -39,6 +39,10 @@ digraph finite_state_machine {
     stash
     "];
 
+    WaitingRoleAssignment -> WaitingRoleAssignment [label = "neighbour : MakeOffer(o) =>
+    stash
+    "];
+
     WaitingRoleAssignment -> OffererWaitingValues  [ label = "self : DetermineSubset(true) =>
     unstashall
     "];
diff --git a/doc/report/figures/fsm/agent_beginning.png b/doc/report/figures/fsm/agent_beginning.png
index eaaeef6a689da90d50668f1796bbd3339e1f1f1d..7226bf28e6a51b1ac03c086f50dbd6993a3022e0 100644
Binary files a/doc/report/figures/fsm/agent_beginning.png and b/doc/report/figures/fsm/agent_beginning.png differ
diff --git a/doc/report/figures/fsm/committed.gv b/doc/report/figures/fsm/committed.gv
index 360797496d63bb909ed8768a7233d69e8a0b2e3a..e5b36aed7c5c10a808e8612caa47c5a4279047ee 100644
--- a/doc/report/figures/fsm/committed.gv
+++ b/doc/report/figures/fsm/committed.gv
@@ -84,7 +84,9 @@ digraph finite_state_machine {
     self ! Act(shouldAct, self.currBestOffer.move)
     "];
 
-
+Committed -> Committed [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
 
     
     GivingPartnerGoNoGo -> GivingPartnerGoNoGo [label = "self.partner : GiveGo =>
diff --git a/doc/report/figures/fsm/committed.png b/doc/report/figures/fsm/committed.png
index 9b33ff1f87c26188d5ec0692e7b86f27a97f1815..1a79180832e2a05c58ea83f5217b75ae6a7f8042 100644
Binary files a/doc/report/figures/fsm/committed.png and b/doc/report/figures/fsm/committed.png differ
diff --git a/doc/report/figures/fsm/full_mgm2_agent.gv b/doc/report/figures/fsm/full_mgm2_agent.gv
index bd0071272b240a9d502a571fb2a79652e07813bf..dd386847d1f0dba8ce71aef250b796aab82c234f 100644
--- a/doc/report/figures/fsm/full_mgm2_agent.gv
+++ b/doc/report/figures/fsm/full_mgm2_agent.gv
@@ -41,6 +41,10 @@ digraph finite_state_machine {
 
     WaitingRoleAssignment -> OffererWaitingValues  [ label = "self : DetermineSubset(true) =>
     unstashall
+    "];
+
+      WaitingRoleAssignment -> WaitingRoleAssignment [label = "neighbour : MakeOffer(o) =>
+    stash
     "];
 
     WaitingRoleAssignment -> ReceiverWaitingValues  [ label = "self : DetermineSubset(false) =>
@@ -109,6 +113,10 @@ digraph finite_state_machine {
 
     ReceiverWaitingValues -> ReceiverWaitingValues [label = "neighbour : MakeOffer(someOffer/None) =>
     stash
+    "];
+
+    ReceiverWaitingValues -> ReceiverWaitingValues [label = "neighbour : Reject(someOffer) =>
+    Nothing
     "];
 
       /*Receives a neighbour's delta*/
@@ -152,6 +160,10 @@ digraph finite_state_machine {
     stash
     "];
 
+ReceiverAllOffersReceived -> ReceiverAllOffersReceived [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
+
     /*Receive a void offer from itself: there are no viable offers*/
     ReceiverAllOffersReceived -> Uncommitted [label = "self : BestOffer(None, _) =>
     unstashall
@@ -175,6 +187,10 @@ digraph finite_state_machine {
 
 
 /*THE END?*/
+    Committed -> Committed [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
+
     /*committed*/
     Committed -> Committed [label = "neighbour : InformDelta(delta) && (#self.neighbourDeltas < #self.neighbours-1) =>
     self.neighbourDeltas.put(neighbour, delta)
@@ -187,6 +203,10 @@ digraph finite_state_machine {
     self ! Act(shouldAct, self.currBestOffer.move)
     "];
 
+Uncommitted -> Uncommitted [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
+
     /*uncommitted*/
     Uncommitted -> Uncommitted [label = "neighbour : InformDelta(delta) && (#self.neighbourDeltas < #self.neighbours-1) =>
     self.neighbourDeltas.put(neighbour, delta)
diff --git a/doc/report/figures/fsm/full_mgm2_agent.png b/doc/report/figures/fsm/full_mgm2_agent.png
index d07e327ad1eb321aaf81e0b3cd7a88eda172e2a9..30fd59c4c55f992e46077139a8f277b8b01480f0 100644
Binary files a/doc/report/figures/fsm/full_mgm2_agent.png and b/doc/report/figures/fsm/full_mgm2_agent.png differ
diff --git a/doc/report/figures/fsm/receiver.gv b/doc/report/figures/fsm/receiver.gv
index 1aacb9cba1a27a9e701aa846976e79b44aeb899f..3a58ddfeefc466548e2669cdeb424ed69bdd1782 100644
--- a/doc/report/figures/fsm/receiver.gv
+++ b/doc/report/figures/fsm/receiver.gv
@@ -71,6 +71,10 @@ digraph finite_state_machine {
     stash
     "];
 
+    ReceiverWaitingValues -> ReceiverWaitingValues [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
+
 
     /*RECEIVER ALL OFFERS RECEIVED*/
 
@@ -79,6 +83,10 @@ digraph finite_state_machine {
     stash
     "];
 
+    ReceiverAllOffersReceived -> ReceiverAllOffersReceived [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
+
     /*Receive a void offer from itself: there are no viable offers*/
     ReceiverAllOffersReceived -> Uncommitted [label = "self : BestOffer(None, _) =>
     unstashall
diff --git a/doc/report/figures/fsm/receiver.png b/doc/report/figures/fsm/receiver.png
index 74e21dd35b4d83e42591167cebecd04f74d69a93..84bb74732fe477f05a0bb481cf163bcdf0704cb8 100644
Binary files a/doc/report/figures/fsm/receiver.png and b/doc/report/figures/fsm/receiver.png differ
diff --git a/doc/report/figures/fsm/uncommitted.gv b/doc/report/figures/fsm/uncommitted.gv
index 32d7e44e1e16e040a18f8c5dec0e52e7526f194a..5dbc8345766af80caa4abc3ac32a8bd84033d96c 100644
--- a/doc/report/figures/fsm/uncommitted.gv
+++ b/doc/report/figures/fsm/uncommitted.gv
@@ -80,6 +80,10 @@ digraph finite_state_machine {
     Nothing
     "];
 
+Uncommitted -> Uncommitted [label = "neighbour : Reject(someOffer) =>
+    Nothing
+    "];
+
     /*uncommitted*/
     Uncommitted -> ActSolo [label = "neighbour : InformDelta(delta) && (#self.neighbourDeltas == #self.neighbours-1) =>
     self.neighbourDeltas.put(neighbour, delta)
diff --git a/doc/report/figures/fsm/uncommitted.png b/doc/report/figures/fsm/uncommitted.png
index 3af970b27d686a5dd9318fd8e706134618f24263..90737060c9bd9573b2467c4fc760f39ba4621901 100644
Binary files a/doc/report/figures/fsm/uncommitted.png and b/doc/report/figures/fsm/uncommitted.png differ
diff --git a/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala b/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala
index d2ced5726428ab097454bb797efc4ffd23f133aa..b06ab39e14cd7eb197384e7c773b8a89a2685d1f 100644
--- a/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala
+++ b/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala
@@ -318,7 +318,7 @@ class AgentBehaviour(variable: Variable,
       rejectOffers(updatedMind.receivedOffers) //decline all offers
       broadcast(InformDelta(updatedMind.deltas(variable))) //inform all neighbours
       unstashAll
-      goto(Committed) using updatedMind
+      goto(Uncommitted) using updatedMind
   }
 
   /**