diff --git a/callwidget.cpp b/callwidget.cpp
index 3183ffe783bcc15fba56cbd87fd3620ac51b2e5c..5b517ed02e8359a0049e5f4204691962c9a2995e 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -420,7 +420,7 @@ CallWidget::callChangedSlot()
                     GlobalInstances::pixmapManipulator()
                     .callPhoto(actualCall_, QSize(130,130)).value<QImage>()));
 
-    if(actualCall_->state() == Call::State::OVER){
+    if(actualCall_->state() == Call::State::OVER || actualCall_->state() == Call::State::FAILURE){
         ui->outboundCallLabel->setText(actualCall_->toHumanStateName(Call::State::INITIALIZATION));
     } else {
         ui->outboundCallLabel->setText(actualCall_->toHumanStateName());
@@ -536,10 +536,11 @@ void CallWidget::callStateToView(Call* value)
         case Call::State::HOLD:
             ui->stackedWidget->setCurrentWidget(ui->videoPage);
             break;
+        case Call::State::OVER:
+            break;
         case Call::State::FAILURE:
         case Call::State::ERROR:
-        case Call::State::OVER:
-            ui->stackedWidget->setCurrentWidget(ui->welcomePage);
+            on_cancelButton_clicked();
             break;
         case Call::State::INITIALIZATION:
         case Call::State::CONNECTED:
@@ -903,4 +904,3 @@ CallWidget::contactLineEdit_registeredNameFound(const Account* account,NameDirec
         }
     }
 }
-