diff --git a/docs/source/ndnsim-packet-formats.rst b/docs/source/ndnsim-packet-formats.rst
index a694721..cde727b 100644
--- a/docs/source/ndnsim-packet-formats.rst
+++ b/docs/source/ndnsim-packet-formats.rst
@@ -27,13 +27,14 @@
 
 	Packet ::= Version 
 		   PacketType
+                   Length
 		   (Interest | ContentObject)
 
-        0                   1             
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 
-        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-        |    Version    |   PacketType  |
-        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        0                   1                   2                   3
+        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+        |    Version    |   PacketType  |            Length             |
+        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
 For ccnb-encoding compatibility, ``Version`` / ``PacketType`` has two reserved values to denote ccnb-encoded packet:
 
diff --git a/model/ndn-content-object.cc b/model/ndn-content-object.cc
index d9926ef..052cd4a 100644
--- a/model/ndn-content-object.cc
+++ b/model/ndn-content-object.cc
@@ -114,7 +114,8 @@
 uint32_t
 ContentObject::GetSerializedSize () const
 {
-  uint32_t size = 2 + ((2 + 2) + (m_name->GetSerializedSize ()) + (2 + 2 + 4 + 2 + 2 + (2 + 0)));
+  uint32_t size = 1 + 1 + 2 +
+    ((2 + 2) + (m_name->GetSerializedSize ()) + (2 + 2 + 4 + 2 + 2 + (2 + 0)));
   if (m_signature != 0)
     size += 4;
   
@@ -127,7 +128,8 @@
 {
   start.WriteU8 (0x80); // version
   start.WriteU8 (0x01); // packet type
-
+  start.WriteU16 (GetSerializedSize () - 4); // length
+  
   if (m_signature != 0)
     {
       start.WriteU16 (6); // signature length
@@ -169,6 +171,8 @@
   if (i.ReadU8 () != 0x01)
     throw new ContentObjectException ();
 
+  i.ReadU16 (); // length
+
   uint32_t signatureLength = i.ReadU16 ();
   if (signatureLength == 6)
     {
diff --git a/model/ndn-interest.cc b/model/ndn-interest.cc
index fc5b24f..f0a4f29 100644
--- a/model/ndn-interest.cc
+++ b/model/ndn-interest.cc
@@ -146,7 +146,12 @@
 uint32_t
 Interest::GetSerializedSize (void) const
 {
-  size_t size = 2 + (1 + 4 + 2 + 1 + (m_name->GetSerializedSize ()) + (2 + 0) + (2 + 0));
+  size_t size =
+    1/*version*/ + 1 /*type*/ + 2/*length*/ +
+    (4/*nonce*/ + 1/*scope*/ + 1/*nack type*/ + 2/*timestamp*/ +
+     (m_name->GetSerializedSize ()) +
+     (2 + 0)/* selectors */ +
+     (2 + 0)/* options */);
   NS_LOG_INFO ("Serialize size = " << size);
 
   return size;
@@ -158,6 +163,8 @@
   start.WriteU8 (0x80); // version
   start.WriteU8 (0x00); // packet type
 
+  start.WriteU16 (GetSerializedSize () - 4);
+
   start.WriteU32 (m_nonce);
   start.WriteU8 (m_scope);
   start.WriteU8 (m_nackType);
@@ -186,6 +193,8 @@
   if (i.ReadU8 () != 0x00)
     throw new InterestException ();
 
+  i.ReadU16 (); // length, don't need it right now
+  
   m_nonce = i.ReadU32 ();
   m_scope = i.ReadU8 ();
   m_nackType = i.ReadU8 ();
