diff --git a/RingD.cpp b/RingD.cpp
index 77f84c92a2dfd40e8c43e70237db2a6d19c9fbe5..945b23002beb9ba3adff53d9373ce199ac7dc521 100644
--- a/RingD.cpp
+++ b/RingD.cpp
@@ -234,7 +234,9 @@ RingD::parseAccountDetails(const AccountDetailsBlob& allAccountDetails)
 void
 RingD::connectivityChanged()
 {
-    DRing::connectivityChanged();
+    if (daemonRunning_) {
+        DRing::connectivityChanged();
+    }
 }
 
 void
@@ -1206,11 +1208,14 @@ RingD::registerCallbacks()
                     // Otherwise, if it is not already been trusted, we can ignore it completely.
                     if (contact) {
                         if (contact->_trustStatus == TrustStatus::CONTACT_REQUEST_SENT) {
-                            // get the vcard first
-                            auto vcard = contact->getVCard();
-                            auto parsedPayload = VCardUtils::parseContactRequestPayload(payloadString);
-                            vcard->setData(parsedPayload.at("VCARD"));
-                            vcard->completeReception();
+
+                            if (!payloadString.empty()) {
+                                auto vcard = contact->getVCard();
+                                auto parsedPayload = VCardUtils::parseContactRequestPayload(payloadString);
+                                vcard->setData(parsedPayload.at("VCARD"));
+                                vcard->completeReception();
+                                contact->_displayName = Utils::toPlatformString(vcard->getPart("FN"));
+                            }
 
                             DRing::acceptTrustRequest(account_id, from);
                             MSG_("Auto accepted IncomingTrustRequest");
@@ -1224,33 +1229,38 @@ RingD::registerCallbacks()
                     else {
                         // No contact found, so add a new contact with the INCOMNG_CONTACT_REQUEST trust status flag
                         contact = contactListModel->addNewContact("", fromP, TrustStatus::INCOMING_CONTACT_REQUEST, false);
-                    }
 
-                    // The visible ring id will potentially be replaced by a username after a lookup
-                    RingD::instance->lookUpAddress(account_id, Utils::toPlatformString(from));
+                        // The visible ring id will potentially be replaced by a username after a lookup
+                        RingD::instance->lookUpAddress(account_id, Utils::toPlatformString(from));
 
-                    auto vcard = contact->getVCard();
-                    auto parsedPayload = VCardUtils::parseContactRequestPayload(payloadString);
-                    vcard->setData(parsedPayload.at("VCARD"));
-                    vcard->completeReception();
+                        if (!contact)
+                            return;
 
-                    // The name is the ring id for now
-                    contact->_name = Utils::toPlatformString(from);
-                    contact->_displayName = Utils::toPlatformString(vcard->getPart("FN"));
+                        auto vcard = contact->getVCard();
+                        if (!payloadString.empty()) {
+                            auto parsedPayload = VCardUtils::parseContactRequestPayload(payloadString);
+                            vcard->setData(parsedPayload.at("VCARD"));
+                            vcard->completeReception();
+                            contact->_displayName = Utils::toPlatformString(vcard->getPart("FN"));
+                        }
 
-                    contactListModel->saveContactsToFile();
-                    AccountsViewModel::instance->raiseUnreadContactRequest();
+                        // The name is the ring id for now
+                        contact->_name = Utils::toPlatformString(from);
 
-                    SmartPanelItemsViewModel::instance->refreshFilteredItemsList();
-                    SmartPanelItemsViewModel::instance->update(ViewModel::NotifyStrings::notifySmartPanelItem);
+                        contactListModel->saveContactsToFile();
+                        AccountsViewModel::instance->raiseUnreadContactRequest();
+
+                        SmartPanelItemsViewModel::instance->refreshFilteredItemsList();
+                        SmartPanelItemsViewModel::instance->update(ViewModel::NotifyStrings::notifySmartPanelItem);
 
-                    // Add a corresponding contact request control item to the list.
-                    auto newContactRequest = ref new ContactRequestItem();
-                    newContactRequest->_contact = contact;
-                    ContactRequestItemsViewModel::instance->itemsList->InsertAt(0, newContactRequest);
+                        // Add a corresponding contact request control item to the list.
+                        auto newContactRequest = ref new ContactRequestItem();
+                        newContactRequest->_contact = contact;
+                        ContactRequestItemsViewModel::instance->itemsList->InsertAt(0, newContactRequest);
 
-                    ContactRequestItemsViewModel::instance->refreshFilteredItemsList();
-                    ContactRequestItemsViewModel::instance->update(ViewModel::NotifyStrings::notifyContactRequestItem);
+                        ContactRequestItemsViewModel::instance->refreshFilteredItemsList();
+                        ContactRequestItemsViewModel::instance->update(ViewModel::NotifyStrings::notifyContactRequestItem);
+                    }
                 }
             }));
         }),
@@ -1504,12 +1514,12 @@ RingD::startDaemon()
 
     IAsyncAction^ action = ThreadPool::RunAsync(ref new WorkItemHandler([=](IAsyncAction^ spAction)
     {
-        CoreApplication::MainView->CoreWindow->Dispatcher->RunAsync(CoreDispatcherPriority::Normal,
-            ref new DispatchedHandler([=]() {
-            if (!isInWizard) {
-                setOverlayStatusText("Loading from config...", "#ff000000");
-            }
-        }));
+        if (!isInWizard) {
+            CoreApplication::MainView->CoreWindow->Dispatcher->RunAsync(CoreDispatcherPriority::Normal,
+                ref new DispatchedHandler([=]() {
+                    setOverlayStatusText("Loading from config...", "#ff000000");
+                }));
+        }
 
         daemonRunning_ = DRing::start();
 
diff --git a/VCardUtils.cpp b/VCardUtils.cpp
index fe8521b021eb7b1b1619ccf88bf9923e465a0587..aea0c332ad150ed5604e5d4a3b965afffb930095 100644
--- a/VCardUtils.cpp
+++ b/VCardUtils.cpp
@@ -136,11 +136,6 @@ VCard::parseFromString()
             break;
     }
 
-    while (std::getline(_data, _line)) {
-        if (_line.find("PHOTO;") != std::string::npos)
-            break;
-    }
-
     size_t pos = _line.find("PNG:");
     if (pos == std::string::npos) {
         pos = _line.find("JPEG:");
diff --git a/VCardUtils.h b/VCardUtils.h
index 105f523c18900477310f0f42d3e7280809e54fd4..f2bf0033f46d3d14a8349c2c6bcf5764d6980692 100644
--- a/VCardUtils.h
+++ b/VCardUtils.h
@@ -43,7 +43,7 @@ struct Symbols {
     constexpr static const char* OF_TOKEN               =   "of=";
     constexpr static const char* SEPERATOR1             =   ";";
     constexpr static const char* SEPERATOR2             =   ":";
-    constexpr static const char* PHOTO_ENC              =   "ENDCODING=BASE64";
+    constexpr static const char* PHOTO_ENC              =   "ENCODING=BASE64";
     constexpr static const char* PHOTO_TYPE             =   "TYPE=PNG";
 };