diff --git a/ndn-cpp/data.hpp b/ndn-cpp/data.hpp
index d7b9dbe..f368152 100644
--- a/ndn-cpp/data.hpp
+++ b/ndn-cpp/data.hpp
@@ -102,8 +102,8 @@
   
   int getFreshnessSeconds() const { return freshnessSeconds_; }
   
-  const std::vector<unsigned char> getFinalBlockID() const { return finalBlockID_; }
-  std::vector<unsigned char> getFinalBlockID() { return finalBlockID_; }
+  const std::vector<unsigned char> &getFinalBlockID() const { return finalBlockID_; }
+  std::vector<unsigned char> &getFinalBlockID() { return finalBlockID_; }
   
   const KeyLocator &getKeyLocator() const { return keyLocator_; }
   KeyLocator &getKeyLocator() { return keyLocator_; }
@@ -191,7 +191,8 @@
   const SignedInfo &getSignedInfo() const { return signedInfo_; }
   SignedInfo &getSignedInfo() { return signedInfo_; }
   
-  const std::vector<unsigned char> getContent() const { return content_; }
+  const std::vector<unsigned char> &getContent() const { return content_; }
+  std::vector<unsigned char> &getContent() { return content_; }
 
   void setSignature(const Signature &signature) { signature_ = signature; }
   
diff --git a/ndn-cpp/interest.hpp b/ndn-cpp/interest.hpp
index 5d7169a..149c606 100644
--- a/ndn-cpp/interest.hpp
+++ b/ndn-cpp/interest.hpp
@@ -191,7 +191,7 @@
 
   double getInterestLifetimeMilliseconds() const { return interestLifetimeMilliseconds_; }
 
-  const std::vector<unsigned char> getNonce() const { return nonce_; }
+  const std::vector<unsigned char> &getNonce() const { return nonce_; }
   
   /**
    * Clear this interest, and set the values by copying from the interest struct.
