diff --git a/ndn-cpp/transport/udp-transport.cpp b/ndn-cpp/transport/udp-transport.cpp
index 17250d4..eb8b0d7 100644
--- a/ndn-cpp/transport/udp-transport.cpp
+++ b/ndn-cpp/transport/udp-transport.cpp
@@ -34,7 +34,7 @@
   
   ndn_Error error;
   if ((error = ndn_UdpTransport_connect(transport_.get(), (char *)udpConnectionInfo.getHost().c_str(), udpConnectionInfo.getPort())))
-    throw std::runtime_error(ndn_getErrorString(error)); 
+    throw runtime_error(ndn_getErrorString(error)); 
 
   // TODO: This belongs in the socket listener.
   const size_t initialLength = 1000;
@@ -51,7 +51,7 @@
 {
   ndn_Error error;
   if ((error = ndn_UdpTransport_send(transport_.get(), (uint8_t *)data, dataLength)))
-    throw std::runtime_error(ndn_getErrorString(error));  
+    throw runtime_error(ndn_getErrorString(error));  
 }
 
 void 
@@ -60,14 +60,14 @@
   int receiveIsReady;
   ndn_Error error;
   if ((error = ndn_UdpTransport_receiveIsReady(transport_.get(), &receiveIsReady)))
-    throw std::runtime_error(ndn_getErrorString(error));  
+    throw runtime_error(ndn_getErrorString(error));  
   if (!receiveIsReady)
     return;
 
   uint8_t buffer[8000];
   size_t nBytes;
   if ((error = ndn_UdpTransport_receive(transport_.get(), buffer, sizeof(buffer), &nBytes)))
-    throw std::runtime_error(ndn_getErrorString(error));  
+    throw runtime_error(ndn_getErrorString(error));  
 
   ndn_BinaryXmlElementReader_onReceivedData(elementReader_.get(), buffer, nBytes);
 }
@@ -83,7 +83,7 @@
 {
   ndn_Error error;
   if ((error = ndn_UdpTransport_close(transport_.get())))
-    throw std::runtime_error(ndn_getErrorString(error));  
+    throw runtime_error(ndn_getErrorString(error));  
 }
 
 UdpTransport::~UdpTransport()
