diff --git a/src/contactproxymodel.cpp b/src/contactproxymodel.cpp
index d7a44fa09bcbbb88db9067744af9d28a3efdd434..87c83961c12d05dba7974b59863b41c928ff1df8 100644
--- a/src/contactproxymodel.cpp
+++ b/src/contactproxymodel.cpp
@@ -417,7 +417,8 @@ QModelIndex ContactProxyModel::index( int row, int column, const QModelIndex& pa
       switch(parentNode->type()) {
          case CategorizedCompositeNode::Type::TOP_LEVEL: {
             TopLevelItem* tld = static_cast<TopLevelItem*>(parentNode);
-            return createIndex(row,column,(void*)tld->m_lChildren[row]);
+            if (tld && row < tld->m_lChildren.size())
+               return createIndex(row,column,(void*)tld->m_lChildren[row]);
          }
             break;
          case CategorizedCompositeNode::Type::CONTACT: {