diff --git a/src/callmodel.cpp b/src/callmodel.cpp
index 6c511fd298958e27e2b2044cc011f8f1e60cd11f..d4fc5f94f6d27ed2472b69908580f8ddbabf24c7 100644
--- a/src/callmodel.cpp
+++ b/src/callmodel.cpp
@@ -992,12 +992,17 @@ QModelIndex CallModel::parent( const QModelIndex& idx) const
 ///Get the call index at row,column (active call only)
 QModelIndex CallModel::index( int row, int column, const QModelIndex& parentIdx) const
 {
-   if (row >= 0 && !parentIdx.isValid() && d_ptr->m_lInternalModel.size() > row) {
+   if (row >= 0 && !parentIdx.isValid() && d_ptr->m_lInternalModel.size() > row)
       return createIndex(row,column,d_ptr->m_lInternalModel[row]);
-   }
-   else if (row >= 0 && parentIdx.isValid() && d_ptr->m_lInternalModel[parentIdx.row()]->m_lChildren.size() > row) {
+
+   if (!parentIdx.isValid())
+      return {};
+
+   if (row < 0 || parentIdx.row() >= d_ptr->m_lInternalModel.size())
+      return {};
+
+   if (d_ptr->m_lInternalModel[parentIdx.row()]->m_lChildren.size() > row)
       return createIndex(row,column,d_ptr->m_lInternalModel[parentIdx.row()]->m_lChildren[row]);
-   }
 
    return QModelIndex();
 }