diff --git a/ndn-cpp/Interest.cpp b/ndn-cpp/Interest.cpp
index 5ddbbab..2b39b49 100644
--- a/ndn-cpp/Interest.cpp
+++ b/ndn-cpp/Interest.cpp
@@ -4,6 +4,7 @@
  */
 
 #include <stdexcept>
+#include "common.hpp"
 #include "Interest.hpp"
 
 using namespace std;
@@ -48,10 +49,7 @@
 	answerOriginKind_ = interestStruct.answerOriginKind;
 	scope_ = interestStruct.scope;
 	interestLifetime_ = interestStruct.interestLifetime;
-	nonce_.clear();
-  if (interestStruct.nonce)
-    nonce_.insert
-      (nonce_.begin(), interestStruct.nonce, interestStruct.nonce + interestStruct.nonceLength);
+  setVector(nonce_, interestStruct.nonce, interestStruct.nonceLength);
 }
 
 void Interest::get(struct ndn_Interest &interestStruct) const 
diff --git a/ndn-cpp/PublisherPublicKeyDigest.hpp b/ndn-cpp/PublisherPublicKeyDigest.hpp
index 95ca25d..62c22d6 100644
--- a/ndn-cpp/PublisherPublicKeyDigest.hpp
+++ b/ndn-cpp/PublisherPublicKeyDigest.hpp
@@ -7,6 +7,7 @@
 #define	NDN_PUBLISHERPUBLICKEYDIGEST_HPP
 
 #include <vector>
+#include "common.hpp"
 #include "c/PublisherPublicKeyDigest.h"
 
 namespace ndn {
@@ -40,11 +41,8 @@
    */
   void set(const struct ndn_PublisherPublicKeyDigest &publisherPublicKeyDigestStruct) 
   {
-  	publisherPublicKeyDigest_.clear();
-    if (publisherPublicKeyDigestStruct.publisherPublicKeyDigest)
-      publisherPublicKeyDigest_.insert
-        (publisherPublicKeyDigest_.begin(), publisherPublicKeyDigestStruct.publisherPublicKeyDigest, 
-         publisherPublicKeyDigestStruct.publisherPublicKeyDigest + publisherPublicKeyDigestStruct.publisherPublicKeyDigestLength);
+    setVector(publisherPublicKeyDigest_, publisherPublicKeyDigestStruct.publisherPublicKeyDigest, 
+              publisherPublicKeyDigestStruct.publisherPublicKeyDigestLength);
   }
 
   const std::vector<unsigned char> &getPublisherPublicKeyDigest() const { return publisherPublicKeyDigest_; }
diff --git a/ndn-cpp/common.hpp b/ndn-cpp/common.hpp
index 4b146db..f763d55 100644
--- a/ndn-cpp/common.hpp
+++ b/ndn-cpp/common.hpp
@@ -6,6 +6,7 @@
 #ifndef NDN_COMMON_HPP
 #define NDN_COMMON_HPP
 
+#include <vector>
 #include "../config.h"
 
 // Depending on where ./configure found shared_ptr, define the ptr_lib namespace.
@@ -21,4 +22,21 @@
 #error "Can't find shared_ptr in std or boost"
 #endif
 
+namespace ndn {
+  
+/**
+ * Clear the vector and copy valueLength bytes from value.
+ * @param v the vector to copy to
+ * @param value the array of bytes, or 0 to not copy
+ * @param valueLength the length of value
+ */
+static inline void setVector(std::vector<unsigned char> &vec, const unsigned char *value, unsigned int valueLength) 
+{
+	vec.clear();
+  if (value)
+    vec.insert(vec.begin(), value, value + valueLength);  
+}
+  
+}
+
 #endif
