diff --git a/ndn-cpp/security/certificate/certificate.cpp b/ndn-cpp/security/certificate/certificate.cpp
index 8f6288c..9047a70 100644
--- a/ndn-cpp/security/certificate/certificate.cpp
+++ b/ndn-cpp/security/certificate/certificate.cpp
@@ -102,7 +102,7 @@
 
   root->encode(start);
 
-  shared_ptr<std::vector<uint8_t> > blob = blobStream.buf();
+  shared_ptr<vector<uint8_t> > blob = blobStream.buf();
   setContent(blob);
 }
 
diff --git a/ndn-cpp/security/identity/identity-manager.cpp b/ndn-cpp/security/identity/identity-manager.cpp
index 3faf94b..e9c80bc 100644
--- a/ndn-cpp/security/identity/identity-manager.cpp
+++ b/ndn-cpp/security/identity/identity-manager.cpp
@@ -135,7 +135,7 @@
 
   return certificate;
 #else
-  throw std::runtime_error("not implemented");
+  throw runtime_error("not implemented");
 #endif
 }
 
@@ -185,7 +185,7 @@
 
   return sha256Sig;
 #else
-  throw std::runtime_error("not implemented");
+  throw runtime_error("not implemented");
 #endif
 }
 
@@ -265,7 +265,7 @@
 
   return certificate;
 #else
-  throw std::runtime_error("not implemented");
+  throw runtime_error("not implemented");
 #endif  
 }
 
diff --git a/ndn-cpp/security/identity/memory-identity-storage.cpp b/ndn-cpp/security/identity/memory-identity-storage.cpp
index 95ab69b..164862e 100644
--- a/ndn-cpp/security/identity/memory-identity-storage.cpp
+++ b/ndn-cpp/security/identity/memory-identity-storage.cpp
@@ -42,7 +42,7 @@
 MemoryIdentityStorage::revokeIdentity()
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::revokeIdentity not implemented");
+  throw runtime_error("MemoryIdentityStorage::revokeIdentity not implemented");
 #endif
 }
 
@@ -50,7 +50,7 @@
 MemoryIdentityStorage::getNewKeyName(const Name& identityName, bool useKsk)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::getNewKeyName not implemented");
+  throw runtime_error("MemoryIdentityStorage::getNewKeyName not implemented");
 #endif
 }
 
@@ -58,7 +58,7 @@
 MemoryIdentityStorage::doesKeyExist(const Name& keyName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::doesKeyExist not implemented");
+  throw runtime_error("MemoryIdentityStorage::doesKeyExist not implemented");
 #endif
 }
 
@@ -79,7 +79,7 @@
 MemoryIdentityStorage::addKey(const Name& keyName, KeyType keyType, const Blob& publicKeyDer)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::addKey not implemented");
+  throw runtime_error("MemoryIdentityStorage::addKey not implemented");
 #endif
 }
 
@@ -87,7 +87,7 @@
 MemoryIdentityStorage::getKey(const Name& keyName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::getKey not implemented");
+  throw runtime_error("MemoryIdentityStorage::getKey not implemented");
 #endif
 }
 
@@ -95,7 +95,7 @@
 MemoryIdentityStorage::activateKey(const Name& keyName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::activateKey not implemented");
+  throw runtime_error("MemoryIdentityStorage::activateKey not implemented");
 #endif
 }
 
@@ -103,7 +103,7 @@
 MemoryIdentityStorage::deactivateKey(const Name& keyName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::deactivateKey not implemented");
+  throw runtime_error("MemoryIdentityStorage::deactivateKey not implemented");
 #endif
 }
 
@@ -111,7 +111,7 @@
 MemoryIdentityStorage::doesCertificateExist(const Name& certificateName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::doesCertificateExist not implemented");
+  throw runtime_error("MemoryIdentityStorage::doesCertificateExist not implemented");
 #endif
 }
 
@@ -119,7 +119,7 @@
 MemoryIdentityStorage::addCertificate(const IdentityCertificate& certificate)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::addCertificate not implemented");
+  throw runtime_error("MemoryIdentityStorage::addCertificate not implemented");
 #endif
 }
 
@@ -127,7 +127,7 @@
 MemoryIdentityStorage::getCertificate(const Name &certificateName, bool allowAny)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::getCertificate not implemented");
+  throw runtime_error("MemoryIdentityStorage::getCertificate not implemented");
 #endif
 }
 
@@ -141,7 +141,7 @@
 MemoryIdentityStorage::getDefaultKeyNameForIdentity(const Name& identityName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::getDefaultKeyNameForIdentity not implemented");
+  throw runtime_error("MemoryIdentityStorage::getDefaultKeyNameForIdentity not implemented");
 #endif
 }
 
@@ -149,7 +149,7 @@
 MemoryIdentityStorage::getDefaultCertificateNameForKey(const Name& keyName)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::getDefaultCertificateNameForKey not implemented");
+  throw runtime_error("MemoryIdentityStorage::getDefaultCertificateNameForKey not implemented");
 #endif
 }
 
@@ -168,7 +168,7 @@
 MemoryIdentityStorage::setDefaultKeyNameForIdentity(const Name& keyName, const Name& identityNameCheck)
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::setDefaultKeyNameForIdentity not implemented");
+  throw runtime_error("MemoryIdentityStorage::setDefaultKeyNameForIdentity not implemented");
 #endif
 }
 
@@ -176,7 +176,7 @@
 MemoryIdentityStorage::setDefaultCertificateNameForKey(const Name& keyName, const Name& certificateName)  
 {
 #if 1
-  throw std::runtime_error("MemoryIdentityStorage::setDefaultCertificateNameForKey not implemented");
+  throw runtime_error("MemoryIdentityStorage::setDefaultCertificateNameForKey not implemented");
 #endif
 }
 
diff --git a/ndn-cpp/security/identity/memory-private-key-storage.cpp b/ndn-cpp/security/identity/memory-private-key-storage.cpp
index 09f1c66..f461a5b 100644
--- a/ndn-cpp/security/identity/memory-private-key-storage.cpp
+++ b/ndn-cpp/security/identity/memory-private-key-storage.cpp
@@ -33,7 +33,7 @@
 MemoryPrivateKeyStorage::generateKeyPair(const Name& keyName, KeyType keyType, int keySize)
 {
 #if 1
-  throw std::runtime_error("MemoryPrivateKeyStorage::generateKeyPair not implemented");
+  throw runtime_error("MemoryPrivateKeyStorage::generateKeyPair not implemented");
 #endif
 }
 
@@ -72,7 +72,7 @@
 MemoryPrivateKeyStorage::decrypt(const Name& keyName, const uint8_t* data, size_t dataLength, bool isSymmetric)
 {
 #if 1
-  throw std::runtime_error("MemoryPrivateKeyStorage::decrypt not implemented");
+  throw runtime_error("MemoryPrivateKeyStorage::decrypt not implemented");
 #endif
 }
 
@@ -80,7 +80,7 @@
 MemoryPrivateKeyStorage::encrypt(const Name& keyName, const uint8_t* data, size_t dataLength, bool isSymmetric)
 {
 #if 1
-  throw std::runtime_error("MemoryPrivateKeyStorage::encrypt not implemented");
+  throw runtime_error("MemoryPrivateKeyStorage::encrypt not implemented");
 #endif
 }
 
@@ -88,7 +88,7 @@
 MemoryPrivateKeyStorage::generateKey(const Name& keyName, KeyType keyType, int keySize)
 {
 #if 1
-  throw std::runtime_error("MemoryPrivateKeyStorage::generateKey not implemented");
+  throw runtime_error("MemoryPrivateKeyStorage::generateKey not implemented");
 #endif
 }
 
