diff --git a/src/conf-parameter.cpp b/src/conf-parameter.cpp
index 205c67c..a7008e7 100644
--- a/src/conf-parameter.cpp
+++ b/src/conf-parameter.cpp
@@ -135,6 +135,11 @@
                    "If security is enabled in the configuration, NLSR will not converge.");
     return ndn::nullopt;
   }
+  catch (const std::invalid_argument& e) {
+    // This is (probably) needed for the dummy keychain patch.
+    // https://github.com/named-data/mini-ndn/blob/master/util/patches/ndn-cxx-dummy-keychain.patch
+    NLSR_LOG_DEBUG(e.what());
+  }
 
   auto instanceName = ndn::Name(m_routerPrefix).append("nlsr");
   try {
@@ -143,6 +148,15 @@
   catch (const Pib::Error&) {
     // old instance identity does not exist
   }
+  catch (const std::invalid_argument& e) {
+    // This is needed for the dummy-keychain patch (ref above) to handle the error that it generates.
+    const std::string exceptionText = e.what();
+    if (exceptionText.find("does not match identity") == std::string::npos) {
+      NLSR_LOG_ERROR(exceptionText);
+      throw;
+    }
+    return ndn::nullopt;
+  }
 
   auto key = m_keyChain.createIdentity(instanceName).getDefaultKey();
   auto cert = m_keyChain.makeCertificate(key, signingByIdentity(routerIdentity));
