diff --git a/src/private/vcardutils.cpp b/src/private/vcardutils.cpp
index c484fbf9c5b88ecb2b1be3040562b45d18ad5952..f2d80524c042e155af7f0b807791136379085d5c 100644
--- a/src/private/vcardutils.cpp
+++ b/src/private/vcardutils.cpp
@@ -130,13 +130,19 @@ struct VCardMapper {
    void addAddress(Person* c, const QString& key, const QByteArray& fn) {
       Person::Address* addr = new Person::Address();
       QList<QByteArray> fields = fn.split(VCardUtils::Delimiter::SEPARATOR_TOKEN[0]);
+      QStringList keyFields = key.split(VCardUtils::Delimiter::SEPARATOR_TOKEN);
 
-      addr->setType        (key.split(VCardUtils::Delimiter::SEPARATOR_TOKEN)[1] );
-      addr->setAddressLine (QString::fromUtf8(fields[2])                         );
-      addr->setCity        (QString::fromUtf8(fields[3])                         );
-      addr->setState       (QString::fromUtf8(fields[4])                         );
-      addr->setZipCode     (QString::fromUtf8(fields[5])                         );
-      addr->setCountry     (QString::fromUtf8(fields[6])                         );
+      if(keyFields.size() < 2 || fields.size() < 7) {
+          qDebug() << "Malformatted Address";
+          return;
+      }
+
+      addr->setType        (keyFields[1]                   );
+      addr->setAddressLine (QString::fromUtf8(fields[2])   );
+      addr->setCity        (QString::fromUtf8(fields[3])   );
+      addr->setState       (QString::fromUtf8(fields[4])   );
+      addr->setZipCode     (QString::fromUtf8(fields[5])   );
+      addr->setCountry     (QString::fromUtf8(fields[6])   );
 
       c->addAddress(addr);
    }