diff --git a/src/management/nfd-forwarder-status.cpp b/src/management/nfd-forwarder-status.cpp
index 457c673..c4e736a 100644
--- a/src/management/nfd-forwarder-status.cpp
+++ b/src/management/nfd-forwarder-status.cpp
@@ -34,8 +34,7 @@
               "ForwarderStatus::Error must inherit from tlv::Error");
 
 ForwarderStatus::ForwarderStatus()
-  : m_nfdVersion(0)
-  , m_startTimestamp(time::system_clock::TimePoint::min())
+  : m_startTimestamp(time::system_clock::TimePoint::min())
   , m_currentTimestamp(time::system_clock::TimePoint::min())
   , m_nNameTreeEntries(0)
   , m_nFibEntries(0)
@@ -82,8 +81,9 @@
                                                 time::toUnixTimestamp(m_currentTimestamp).count());
   totalLength += prependNonNegativeIntegerBlock(encoder, tlv::nfd::StartTimestamp,
                                                 time::toUnixTimestamp(m_startTimestamp).count());
-  totalLength += prependNonNegativeIntegerBlock(encoder, tlv::nfd::NfdVersion,
-                                                m_nfdVersion);
+  totalLength += prependByteArrayBlock(encoder,tlv::nfd::NfdVersion,
+                                       reinterpret_cast<const uint8_t*>(m_nfdVersion.c_str()),
+                                       m_nfdVersion.size());
 
   totalLength += encoder.prependVarNumber(totalLength);
   totalLength += encoder.prependVarNumber(tlv::Content);
@@ -123,7 +123,7 @@
   Block::element_const_iterator val = m_wire.elements_begin();
 
   if (val != m_wire.elements_end() && val->type() == tlv::nfd::NfdVersion) {
-    m_nfdVersion = static_cast<int>(readNonNegativeInteger(*val));
+    m_nfdVersion.assign(reinterpret_cast<const char*>(val->value()), val->value_size());
     ++val;
   }
   else {
@@ -220,7 +220,7 @@
 }
 
 ForwarderStatus&
-ForwarderStatus::setNfdVersion(int nfdVersion)
+ForwarderStatus::setNfdVersion(const std::string& nfdVersion)
 {
   m_wire.reset();
   m_nfdVersion = nfdVersion;
diff --git a/src/management/nfd-forwarder-status.hpp b/src/management/nfd-forwarder-status.hpp
index 90ec7a5..c45d403 100644
--- a/src/management/nfd-forwarder-status.hpp
+++ b/src/management/nfd-forwarder-status.hpp
@@ -74,14 +74,14 @@
   wireDecode(const Block& wire);
 
 public: // getters & setters
-  int
+  const std::string&
   getNfdVersion() const
   {
     return m_nfdVersion;
   }
 
   ForwarderStatus&
-  setNfdVersion(int nfdVersion);
+  setNfdVersion(const std::string& nfdVersion);
 
   const time::system_clock::TimePoint&
   getStartTimestamp() const
@@ -183,7 +183,7 @@
   setNOutDatas(uint64_t nOutDatas);
 
 private:
-  int m_nfdVersion;
+  std::string m_nfdVersion;
   time::system_clock::TimePoint m_startTimestamp;
   time::system_clock::TimePoint m_currentTimestamp;
   size_t m_nNameTreeEntries;
