diff --git a/I2PTunnel.cpp b/I2PTunnel.cpp
index ac372112..d083ba6a 100644
--- a/I2PTunnel.cpp
+++ b/I2PTunnel.cpp
@@ -139,6 +139,11 @@ namespace client
 		}
 	}
 
+	I2PTunnel::I2PTunnel (ClientDestination * localDestination) :
+		m_LocalDestination (localDestination ? localDestination :
+			i2p::client::context.CreateNewLocalDestination (false, I2P_TUNNEL_DEFAULT_KEY_TYPE))
+	{
+	}
 	void I2PTunnel::AddConnection (std::shared_ptr<I2PTunnelConnection> conn)
 	{
 		m_Connections.insert (conn);
@@ -155,8 +160,7 @@ namespace client
 	}	
 		
 	I2PClientTunnel::I2PClientTunnel (const std::string& destination, int port, ClientDestination * localDestination): 
-		I2PTunnel (localDestination ? localDestination : 
-			i2p::client::context.CreateNewLocalDestination (false, i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256)), 
+		I2PTunnel (localDestination),
 		m_Acceptor (GetService (), boost::asio::ip::tcp::endpoint (boost::asio::ip::tcp::v4(), port)),
 		m_Timer (GetService ()), m_Destination (destination), m_DestinationIdentHash (nullptr), 
 		m_RemoteLeaseSet (nullptr)
diff --git a/I2PTunnel.h b/I2PTunnel.h
index 5df769b6..5b00cec7 100644
--- a/I2PTunnel.h
+++ b/I2PTunnel.h
@@ -17,6 +17,7 @@ namespace client
 	const size_t I2P_TUNNEL_CONNECTION_BUFFER_SIZE = 8192;
 	const int I2P_TUNNEL_CONNECTION_MAX_IDLE = 3600; // in seconds	
 	const int I2P_TUNNEL_DESTINATION_REQUEST_TIMEOUT = 10; // in seconds
+	const uint16_t I2P_TUNNEL_DEFAULT_KEY_TYPE = i2p::data::SIGNING_KEY_TYPE_ECDSA_SHA256_P256;
 
 	class I2PTunnel;
 	class I2PTunnelConnection: public std::enable_shared_from_this<I2PTunnelConnection>
@@ -58,8 +59,7 @@ namespace client
 	{
 		public:
 
-			I2PTunnel (ClientDestination * localDestination): 
-				m_LocalDestination (localDestination) {};
+			I2PTunnel (ClientDestination * localDestination  = nullptr);
 			virtual ~I2PTunnel () { ClearConnections (); }; 
 
 			void AddConnection (std::shared_ptr<I2PTunnelConnection> conn);