diff --git a/src/contactpanel.cpp b/src/contactpanel.cpp
index a63f9f9..b0276b7 100644
--- a/src/contactpanel.cpp
+++ b/src/contactpanel.cpp
@@ -73,6 +73,10 @@
   m_contactManager->setDefaultIdentity(m_defaultIdentity);
   m_nickName = m_defaultIdentity.get(-1).toUri();
   m_settingDialog->setIdentity(m_defaultIdentity.toUri(), m_nickName);
+  Name defaultCertName = m_keychain->getIdentityManager()->getDefaultCertificateNameByIdentity(m_defaultIdentity);
+  if(defaultCertName.size() == 0)
+    showError(QString::fromStdString("Corresponding certificate is missing!\nHave you installed the certificate?"));
+  
 
   m_profileEditor = new ProfileEditor(m_contactManager);
   m_profileEditor->setCurrentIdentity(m_defaultIdentity);
@@ -108,6 +112,9 @@
   connect(ui->EditProfileButton, SIGNAL(clicked()), 
           this, SLOT(openProfileEditor()));
 
+  connect(m_profileEditor, SIGNAL(noKeyOrCert(const QString&)),
+          this, SLOT(showError(const QString&)));
+
   // connect(ui->AddContactButton, SIGNAL(clicked()),
   //         this, SLOT(openAddContactPanel()));
   connect(ui->AddContactButton, SIGNAL(clicked()),
@@ -523,7 +530,14 @@
 void
 ContactPanel::updateDefaultIdentity(const QString& identity, const QString& nickName)
 { 
+  // _LOG_DEBUG(identity.toStdString());
   m_defaultIdentity = Name(identity.toStdString());
+  Name defaultKeyName = m_keychain->getIdentityManager()->getPublicStorage()->getDefaultKeyNameForIdentity(m_defaultIdentity);
+  if(defaultKeyName.size() == 0)
+    showError(QString::fromStdString("Corresponding key is missing!\nHave you created the key?"));
+  Name defaultCertName = m_keychain->getIdentityManager()->getPublicStorage()->getDefaultCertificateNameForKey(defaultKeyName);
+  if(defaultCertName.size() == 0)
+    showError(QString::fromStdString("Corresponding certificate is missing!\nHave you installed the certificate?"));
   m_profileEditor->setCurrentIdentity(m_defaultIdentity);
   m_nickName = nickName.toStdString();
   m_handler->clearInterestFilter(m_inviteListenPrefix);
diff --git a/src/profileeditor.cpp b/src/profileeditor.cpp
index 7014794..f0f92d2 100644
--- a/src/profileeditor.cpp
+++ b/src/profileeditor.cpp
@@ -29,6 +29,7 @@
     , ui(new Ui::ProfileEditor)
     , m_tableModel(new QSqlTableModel())
     , m_contactManager(contactManager)
+    , m_identityManager(ndn::Ptr<ndn::security::IdentityManager>::Create())
 {
   ui->setupUi(this);
   
@@ -82,6 +83,14 @@
 void
 ProfileEditor::onOkClicked()
 {
+  Name defaultKeyName = m_identityManager->getPublicStorage()->getDefaultKeyNameForIdentity(m_currentIdentity);
+  if(defaultKeyName.size() == 0)
+    emit noKeyOrCert(QString::fromStdString("Corresponding key is missing!\nHave you created the key?"));
+  Name defaultCertName = m_identityManager->getPublicStorage()->getDefaultCertificateNameForKey(defaultKeyName);
+  if(defaultCertName.size() == 0)
+    emit noKeyOrCert(QString::fromStdString("Corresponding certificate is missing!\nHave you installed the certificate?"));
+
+
   m_tableModel->submitAll();
   m_contactManager->updateProfileData(m_currentIdentity);
   this->hide();
diff --git a/src/profileeditor.h b/src/profileeditor.h
index 92ceaeb..7a5c6f7 100644
--- a/src/profileeditor.h
+++ b/src/profileeditor.h
@@ -16,6 +16,7 @@
 
 #ifndef Q_MOC_RUN
 #include "contact-manager.h"
+#include <ndn.cxx/security/identity/identity-manager.h>
 #endif
 
 namespace Ui {
@@ -49,11 +50,15 @@
   void
   onGetClicked();
 
+signals:
+  void
+  noKeyOrCert(const QString&);
 
 private:
   Ui::ProfileEditor *ui;
   QSqlTableModel* m_tableModel;
   ndn::Ptr<ContactManager> m_contactManager;
+  ndn::Ptr<ndn::security::IdentityManager> m_identityManager;
   ndn::Name m_currentIdentity;
 };
 
