diff --git a/ndn-cpp/c/encoding/binary-xml-data.c b/ndn-cpp/c/encoding/binary-xml-data.c
index b2d391a..564e6f4 100644
--- a/ndn-cpp/c/encoding/binary-xml-data.c
+++ b/ndn-cpp/c/encoding/binary-xml-data.c
@@ -159,7 +159,8 @@
   return NDN_ERROR_success;
 }
 
-ndn_Error ndn_decodeBinaryXmlData(struct ndn_Data *data, struct ndn_BinaryXmlDecoder *decoder)
+ndn_Error ndn_decodeBinaryXmlData
+  (struct ndn_Data *data, unsigned int *signedFieldsBeginOffset, unsigned int *signedFieldsEndOffset, struct ndn_BinaryXmlDecoder *decoder)
 {
   ndn_Error error;
   if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_ContentObject)))
@@ -175,6 +176,8 @@
   else
     ndn_Signature_init(&data->signature);
   
+  *signedFieldsBeginOffset = decoder->offset;
+  
   if ((error = ndn_decodeBinaryXmlName(&data->name, decoder)))
     return error;
   
@@ -192,6 +195,8 @@
       (decoder, ndn_BinaryXml_DTag_Content, 1, &data->content, &data->contentLength)))
     return error; 
   
+  *signedFieldsEndOffset = decoder->offset;
+
   if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
     return error;
   
diff --git a/ndn-cpp/c/encoding/binary-xml-data.h b/ndn-cpp/c/encoding/binary-xml-data.h
index df77d69..cfbfa3d 100644
--- a/ndn-cpp/c/encoding/binary-xml-data.h
+++ b/ndn-cpp/c/encoding/binary-xml-data.h
@@ -16,19 +16,30 @@
 #endif
 
 /**
- * Encode the data as binary XML.
+ * Encode the data packet as binary XML.
  * @param data Pointer to the data object the encode.
  * @param signedFieldsBeginOffset Return the offset in the encoding of the beginning of the fields which are signed.
  * If you are not encoding in order to sign, you can ignore this.
  * @param signedFieldsEndOffset Return the offset in the encoding of the end of the fields which are signed.
  * If you are not encoding in order to sign, you can ignore this.
- * @param encoder Pointer to the encoder object which receives the encoding. 
- * @return 
+ * @param encoder Pointer to the ndn_BinaryXmlEncoder struct which receives the encoding. 
+ * @return 0 for success, else an error code.
  */
 ndn_Error ndn_encodeBinaryXmlData
   (struct ndn_Data *data, unsigned int *signedFieldsBeginOffset, unsigned int *signedFieldsEndOffset, struct ndn_BinaryXmlEncoder *encoder);
 
-ndn_Error ndn_decodeBinaryXmlData(struct ndn_Data *data, struct ndn_BinaryXmlDecoder *decoder);
+/**
+ * Decode the data packet as binary XML.
+ * @param data Pointer to the data object the decode.
+ * @param signedFieldsBeginOffset Return the offset in the encoding of the beginning of the fields which are signed.
+ * If you are not encoding in order to sign, you can ignore this.
+ * @param signedFieldsEndOffset Return the offset in the encoding of the end of the fields which are signed.
+ * If you are not encoding in order to sign, you can ignore this.
+ * @param decoder Pointer to the ndn_BinaryXmlDecoder struct which has been initialized with the buffer to decode. 
+ * @return 0 for success, else an error code.
+ */
+ndn_Error ndn_decodeBinaryXmlData
+  (struct ndn_Data *data, unsigned int *signedFieldsBeginOffset, unsigned int *signedFieldsEndOffset, struct ndn_BinaryXmlDecoder *decoder);
 
 #ifdef __cplusplus
 }
diff --git a/ndn-cpp/encoding/binary-xml-wire-format.cpp b/ndn-cpp/encoding/binary-xml-wire-format.cpp
index 3ef731c..43e09bc 100644
--- a/ndn-cpp/encoding/binary-xml-wire-format.cpp
+++ b/ndn-cpp/encoding/binary-xml-wire-format.cpp
@@ -82,8 +82,9 @@
     (&dataStruct, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]));
     
   BinaryXmlDecoder decoder(input, inputLength);  
+  unsigned int dummyBeginOffset, dummyEndOffset;
   ndn_Error error;
-  if ((error = ndn_decodeBinaryXmlData(&dataStruct, &decoder)))
+  if ((error = ndn_decodeBinaryXmlData(&dataStruct, &dummyBeginOffset, &dummyEndOffset, &decoder)))
     throw std::runtime_error(ndn_getErrorString(error));
 
   data.set(dataStruct);
