diff --git a/ndn-cpp/Interest.cpp b/ndn-cpp/Interest.cpp
index 797fa35..5ddbbab 100644
--- a/ndn-cpp/Interest.cpp
+++ b/ndn-cpp/Interest.cpp
@@ -20,7 +20,7 @@
     entries_[i].get(excludeStruct.entries[i]);  
 }
 
-void Exclude::set(struct ndn_Exclude &excludeStruct)
+void Exclude::set(const struct ndn_Exclude &excludeStruct)
 {
   entries_.clear();
   for (unsigned int i = 0; i < excludeStruct.nEntries; ++i) {
@@ -35,7 +35,7 @@
   }
 }
 
-void Interest::set(struct ndn_Interest &interestStruct) 
+void Interest::set(const struct ndn_Interest &interestStruct) 
 {
   name_.set(interestStruct.name);
 	minSuffixComponents_ = interestStruct.minSuffixComponents;
diff --git a/ndn-cpp/Interest.hpp b/ndn-cpp/Interest.hpp
index 2c6ee3e..36e78ca 100644
--- a/ndn-cpp/Interest.hpp
+++ b/ndn-cpp/Interest.hpp
@@ -85,7 +85,7 @@
    * Clear this Exclude, and set the entries by copying from the ndn_Exclude struct.
    * @param excludeStruct a C ndn_Exclude struct
    */
-  void set(struct ndn_Exclude &excludeStruct);
+  void set(const struct ndn_Exclude &excludeStruct);
 
   /**
    * Add a new entry of type ndn_Exclude_ANY
@@ -178,7 +178,7 @@
    * Clear this interest, and set the values by copying from the interest struct.
    * @param interestStruct a C ndn_Interest struct
    */
-  void set(struct ndn_Interest &interestStruct);
+  void set(const struct ndn_Interest &interestStruct);
   
   void setMinSuffixComponents(int value) { minSuffixComponents_ = value; }
   
diff --git a/ndn-cpp/Name.cpp b/ndn-cpp/Name.cpp
index f80d1a7..63a0c4f 100644
--- a/ndn-cpp/Name.cpp
+++ b/ndn-cpp/Name.cpp
@@ -236,7 +236,7 @@
     components_[i].get(nameStruct.components[i]);
 }
   
-void Name::set(struct ndn_Name &nameStruct) 
+void Name::set(const struct ndn_Name &nameStruct) 
 {
   clear();
   for (unsigned int i = 0; i < nameStruct.nComponents; ++i)
diff --git a/ndn-cpp/Name.hpp b/ndn-cpp/Name.hpp
index 0d43e93..3859014 100644
--- a/ndn-cpp/Name.hpp
+++ b/ndn-cpp/Name.hpp
@@ -101,7 +101,7 @@
    * Clear this name, and set the components by copying from the name struct.
    * @param nameStruct a C ndn_Name struct
    */
-  void set(struct ndn_Name &nameStruct);
+  void set(const struct ndn_Name &nameStruct);
   
   /**
    * Add a new component, copying from value of length valueLength.
diff --git a/ndn-cpp/PublisherPublicKeyDigest.hpp b/ndn-cpp/PublisherPublicKeyDigest.hpp
index 5ce4124..95ca25d 100644
--- a/ndn-cpp/PublisherPublicKeyDigest.hpp
+++ b/ndn-cpp/PublisherPublicKeyDigest.hpp
@@ -38,7 +38,7 @@
    * Clear this PublisherPublicKeyDigest, and copy from the ndn_PublisherPublicKeyDigest struct.
    * @param excludeStruct a C ndn_Exclude struct
    */
-  void set(struct ndn_PublisherPublicKeyDigest &publisherPublicKeyDigestStruct) 
+  void set(const struct ndn_PublisherPublicKeyDigest &publisherPublicKeyDigestStruct) 
   {
   	publisherPublicKeyDigest_.clear();
     if (publisherPublicKeyDigestStruct.publisherPublicKeyDigest)
