diff --git a/src/numbercompletionmodel.cpp b/src/numbercompletionmodel.cpp
index 37f348b63beced7a1507444641909510c9502c33..826d3acfc60112ed76d608aa29fdad7594d96d7f 100644
--- a/src/numbercompletionmodel.cpp
+++ b/src/numbercompletionmodel.cpp
@@ -256,7 +256,7 @@ void NumberCompletionModelPrivate::updateModel()
 
 void NumberCompletionModelPrivate::getRange(QMap<QString,NumberWrapper*> map, const QString& prefix, QSet<ContactMethod*>& set) const
 {
-   if (prefix.isEmpty())
+   if (prefix.isEmpty() || map.isEmpty())
       return;
    QMap<QString,NumberWrapper*>::iterator iBeg = map.begin();
    QMap<QString,NumberWrapper*>::iterator iEnd = map.end  ()-1;
@@ -302,7 +302,7 @@ void NumberCompletionModelPrivate::getRange(QMap<QString,NumberWrapper*> map, co
       size = ::ceil(size/2.0f);
    }
 
-   while (iBeg.key().left(prefixLen) != pref && iBeg != iEnd)
+   while (iBeg.key().left(prefixLen) != pref && iBeg != map.end() && iBeg != iEnd)
       ++iBeg;
 
    if (iEnd == iBeg && iBeg.key().left(prefixLen) != pref) {