diff --git a/src/call.cpp b/src/call.cpp
index 4559809892dbd3b70bd0c9d720ce0a419eb5ae46..84006267265f83c2f291d54f764bd1a6bf56ba48 100644
--- a/src/call.cpp
+++ b/src/call.cpp
@@ -1791,6 +1791,7 @@ void CallPrivate::call()
 
     //Refresh peerCM
     peerCM = q_ptr->peerContactMethod();
+    peerCM->addCall(q_ptr);
 
     m_DringId = CallManager::instance().placeCall(m_Account->id(), uri.full());
 
@@ -1807,7 +1808,6 @@ void CallPrivate::call()
     CallModel::instance().registerCall(q_ptr);
 
     connect(peerCM, SIGNAL(presentChanged(bool)), this, SLOT(updated()));
-    peerCM->addCall(q_ptr);
 
     emit q_ptr->dialNumberChanged(QString());
 }
diff --git a/src/phonedirectorymodel.cpp b/src/phonedirectorymodel.cpp
index a3bcc475964351c78a5f82684edab0838fb3c0d7..beaa1b2d89554e1c9d361c973070276c0515e966 100644
--- a/src/phonedirectorymodel.cpp
+++ b/src/phonedirectorymodel.cpp
@@ -293,7 +293,7 @@ QVariant PhoneDirectoryModel::headerData(int section, Qt::Orientation orientatio
    Q_UNUSED(section)
    Q_UNUSED(orientation)
    static const QString headers[] = {tr("URI"), tr("Type"), tr("Person"), tr("Account"), tr("State"), tr("Call count"), tr("Week count"),
-   tr("Trimester count"), tr("Have Called"), tr("Last used"), tr("Name_count"),tr("Total (in seconds)"), tr("Popularity_index"), 
+   tr("Trimester count"), tr("Have Called"), tr("Last used"), tr("Name_count"),tr("Total (in seconds)"), tr("Popularity_index"),
    tr("Bookmarked"), tr("Tracked"), tr("Has certificate"), tr("Present"), tr("Presence message"), tr("Uid") };
    if (role == Qt::DisplayRole) return headers[section];
    return QVariant();
@@ -606,6 +606,10 @@ QVector<ContactMethod*> PhoneDirectoryModel::getNumbersByPopularity() const
 void PhoneDirectoryModelPrivate::slotCallAdded(Call* call)
 {
    Q_UNUSED(call)
+
+   if (call->state() == Call::State::FAILURE)
+      return; //don't update popularity for failed calls
+
    ContactMethod* number = qobject_cast<ContactMethod*>(sender());
    if (number) {
       int currentIndex = number->popularityIndex();