diff --git a/libi2pd/SSUSession.cpp b/libi2pd/SSUSession.cpp
index 817133e8..76b6486b 100644
--- a/libi2pd/SSUSession.cpp
+++ b/libi2pd/SSUSession.cpp
@@ -41,7 +41,6 @@ namespace transport
 				i2p::context.GetRouterInfo ().GetSSUAddress (true);
 			if (address) m_IntroKey = address->i;
 		}
-		m_CreationTime = i2p::util::GetSecondsSinceEpoch ();
 	}
 
 	SSUSession::~SSUSession ()
diff --git a/libi2pd/SSUSession.h b/libi2pd/SSUSession.h
index 535de328..e28b4991 100644
--- a/libi2pd/SSUSession.h
+++ b/libi2pd/SSUSession.h
@@ -103,8 +103,6 @@ namespace transport
 			void SendKeepAlive ();
 			uint32_t GetRelayTag () const { return m_RelayTag; };
 			const i2p::data::RouterInfo::IntroKey& GetIntroKey () const { return m_IntroKey; };
-			uint32_t GetCreationTime () const { return m_CreationTime; };
-			void SetCreationTime (uint32_t ts) { m_CreationTime = ts; }; // for introducers
 
 			void FlushData ();
 			void CleanUp (uint64_t ts);
@@ -167,7 +165,6 @@ namespace transport
 			i2p::crypto::AESKey m_SessionKey;
 			i2p::crypto::MACKey m_MacKey;
 			i2p::data::RouterInfo::IntroKey m_IntroKey;
-			uint32_t m_CreationTime; // seconds since epoch
 			SSUData m_Data;
 			bool m_IsDataReceived;
 			std::unique_ptr<SignedData> m_SignedData; // we need it for SessionConfirmed only
diff --git a/libi2pd/TransportSession.h b/libi2pd/TransportSession.h
index c05b46ac..53192816 100644
--- a/libi2pd/TransportSession.h
+++ b/libi2pd/TransportSession.h
@@ -79,6 +79,7 @@ namespace transport
 			{
 				if (router)
 					m_RemoteIdentity = router->GetRouterIdentity ();
+				m_CreationTime = m_LastActivityTimestamp;	
 			}
 
 			virtual ~TransportSession () {};
@@ -106,6 +107,9 @@ namespace transport
 			bool IsTerminationTimeoutExpired (uint64_t ts) const
 			{ return ts >= m_LastActivityTimestamp + GetTerminationTimeout (); };
 
+			uint32_t GetCreationTime () const { return m_CreationTime; };
+			void SetCreationTime (uint32_t ts) { m_CreationTime = ts; }; // for introducers
+			
 			virtual uint32_t GetRelayTag () const { return 0; };
 			virtual void SendLocalRouterInfo (bool update = false) { SendI2NPMessages ({ CreateDatabaseStoreMsg () }); };
 			virtual void SendI2NPMessages (const std::vector<std::shared_ptr<I2NPMessage> >& msgs) = 0;
@@ -118,6 +122,7 @@ namespace transport
 			bool m_IsOutgoing;
 			int m_TerminationTimeout;
 			uint64_t m_LastActivityTimestamp;
+			uint32_t m_CreationTime; // seconds since epoch
 	};
 }
 }