diff --git a/src/Call.cpp b/src/Call.cpp
index 95912c67651d2c99aeebaf9d2245338c9847d67b..43913a8d52c7054a86419acf6b2ba0d34f39f23f 100644
--- a/src/Call.cpp
+++ b/src/Call.cpp
@@ -493,7 +493,7 @@ call_state Call::actionPerformed(call_action action)
    if (previousState < 11 && action < 5) {
       changeCurrentState(actionPerformedStateMap[previousState][action]);
       //execute the action associated with this transition
-      (this->*(actionPerformedFunctionMap[previousState][action]))(); //WARNING BUG //WARNING SEGFAULT //TODO remove this node, it was not a good idea, it is not stable
+      (this->*(actionPerformedFunctionMap[previousState][action]))();
       qDebug() << "Calling action " << action << " on call with state " << previousState << ". Become " << m_CurrentState;
       //return the new state
    }
diff --git a/src/CallModel.hpp b/src/CallModel.hpp
index f7dd95f067be69b528400af9cb6e1faaefd787c7..f19081c5a580269fd29f90a9985c553b9ec9ffe8 100644
--- a/src/CallModel.hpp
+++ b/src/CallModel.hpp
@@ -277,8 +277,9 @@ template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::
 ///Transfer this call to  "target" number
 template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::transfer(Call* toTransfer, QString target)
 {
-   qDebug() << "Transferring call " << target;
+   qDebug() << "\n\n\n\n\nTransferring call " << toTransfer->getCallId() << target << "\n\n\n\n\n";
    toTransfer->setTransferNumber(target);
+   toTransfer->changeCurrentState(CALL_STATE_TRANSFER);
    toTransfer->actionPerformed(CALL_ACTION_ACCEPT);
    toTransfer->changeCurrentState(CALL_STATE_OVER);
 }