diff --git a/ndn-cpp/ContentObject.hpp b/ndn-cpp/ContentObject.hpp
index 9f72dfc..18c69ea 100644
--- a/ndn-cpp/ContentObject.hpp
+++ b/ndn-cpp/ContentObject.hpp
@@ -90,7 +90,7 @@
   }
   ptr_lib::shared_ptr<std::vector<unsigned char> > encode() const 
   {
-    return encode(BinaryXmlWireFormat::instance());
+    return encode(BinaryXmlWireFormat::getInstance());
   }
   void decode(const unsigned char *input, unsigned int inputLength, WireFormat &wireFormat) 
   {
@@ -98,7 +98,7 @@
   }
   void decode(const unsigned char *input, unsigned int inputLength) 
   {
-    decode(input, inputLength, BinaryXmlWireFormat::instance());
+    decode(input, inputLength, BinaryXmlWireFormat::getInstance());
   }
   void decode(const std::vector<unsigned char> &input, WireFormat &wireFormat) 
   {
diff --git a/ndn-cpp/Interest.hpp b/ndn-cpp/Interest.hpp
index 97baf2b..64746bf 100644
--- a/ndn-cpp/Interest.hpp
+++ b/ndn-cpp/Interest.hpp
@@ -135,7 +135,7 @@
   }
   ptr_lib::shared_ptr<std::vector<unsigned char> > encode() const 
   {
-    return encode(BinaryXmlWireFormat::instance());
+    return encode(BinaryXmlWireFormat::getInstance());
   }
   void decode(const unsigned char *input, unsigned int inputLength, WireFormat &wireFormat) 
   {
@@ -143,7 +143,7 @@
   }
   void decode(const unsigned char *input, unsigned int inputLength) 
   {
-    decode(input, inputLength, BinaryXmlWireFormat::instance());
+    decode(input, inputLength, BinaryXmlWireFormat::getInstance());
   }
   void decode(const std::vector<unsigned char> &input, WireFormat &wireFormat) 
   {
diff --git a/ndn-cpp/encoding/BinaryXMLWireFormat.hpp b/ndn-cpp/encoding/BinaryXMLWireFormat.hpp
index a0fc162..ff73218 100644
--- a/ndn-cpp/encoding/BinaryXMLWireFormat.hpp
+++ b/ndn-cpp/encoding/BinaryXMLWireFormat.hpp
@@ -18,7 +18,7 @@
   virtual ptr_lib::shared_ptr<std::vector<unsigned char> > encodeContentObject(const ContentObject &contentObject);
   virtual void decodeContentObject(ContentObject &contentObject, const unsigned char *input, unsigned int inputLength);
   
-  static BinaryXmlWireFormat &instance() { return instance_; }
+  static BinaryXmlWireFormat &getInstance() { return instance_; }
   
 private:
   static BinaryXmlWireFormat instance_;
