diff --git a/src/encoding/der/visitor/certificate-data-visitor.cpp b/src/encoding/der/visitor/certificate-data-visitor.cpp
index c96d988..4270d68 100644
--- a/src/encoding/der/visitor/certificate-data-visitor.cpp
+++ b/src/encoding/der/visitor/certificate-data-visitor.cpp
@@ -34,7 +34,7 @@
 {
   // _LOG_DEBUG("CertificateDataVisitor::visit");
 
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
   CertificateValidityVisitor validityVisitor;
   children[0]->accept(validityVisitor, param);
   CertificateSubjectVisitor subjectVisitor;
@@ -60,7 +60,7 @@
   
   Certificate* certData = ndnboost::any_cast<Certificate*>(param); 
 
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
   
   SimpleVisitor simpleVisitor;
 
@@ -82,7 +82,7 @@
 {
   Certificate* certData = ndnboost::any_cast<Certificate*>(param); 
   
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
   
   SimpleVisitor simpleVisitor;
 
@@ -102,11 +102,11 @@
 {
   // _LOG_DEBUG("CertSubjectVisitor::visit");
 
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
   
   CertificateSubjectDescriptionVisitor descryptVisitor;
 
-  DerNodePtrList::const_iterator it = children.begin();
+  DerNodePtrList::iterator it = children.begin();
 
   while(it != children.end()) {
     (*it)->accept(descryptVisitor, param);
@@ -122,7 +122,7 @@
 {
   Certificate* certData = ndnboost::any_cast<Certificate*>(param); 
   
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
   
   SimpleVisitor simpleVisitor;
 
@@ -141,11 +141,11 @@
 void 
 CertificateExtensionVisitor::visit(DerSequence& derSeq, ndnboost::any param)
 {
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
   
   CertificateExtensionEntryVisitor extnEntryVisitor;
 
-  DerNodePtrList::const_iterator it = children.begin();
+  DerNodePtrList::iterator it = children.begin();
 
   while(it != children.end()) {
     (*it)->accept(extnEntryVisitor, param);
diff --git a/src/encoding/der/visitor/print-visitor.cpp b/src/encoding/der/visitor/print-visitor.cpp
index 4c5ee64..80a4f5d 100644
--- a/src/encoding/der/visitor/print-visitor.cpp
+++ b/src/encoding/der/visitor/print-visitor.cpp
@@ -100,8 +100,8 @@
   
   printData(derSequence.getHeader(), indent);
 
-  const DerNodePtrList& children = derSequence.getChildren();
-  DerNodePtrList::const_iterator it = children.begin();
+  DerNodePtrList& children = derSequence.getChildren();
+  DerNodePtrList::iterator it = children.begin();
   for(; it != children.end(); it++)
   (*it)->accept(*this, indent + " | ");
 }
diff --git a/src/encoding/der/visitor/public-key-visitor.cpp b/src/encoding/der/visitor/public-key-visitor.cpp
index 87e4e6c..d5b6e3e 100644
--- a/src/encoding/der/visitor/public-key-visitor.cpp
+++ b/src/encoding/der/visitor/public-key-visitor.cpp
@@ -21,10 +21,10 @@
 ndnboost::any 
 PublicKeyVisitor::visit(DerSequence& derSeq)
 {
-  const DerNodePtrList& children = derSeq.getChildren();
+  DerNodePtrList& children = derSeq.getChildren();
 
   SimpleVisitor simpleVisitor;
-  shared_ptr<DerSequence> algoSeq = dynamic_pointer_cast<DerSequence>(children[0]); 
+  shared_ptr<DerSequence> algoSeq = static_cast<shared_ptr<DerSequence> >(children[0]); 
   OID algorithm = ndnboost::any_cast<OID>(algoSeq->getChildren()[0]->accept(simpleVisitor));  
   Blob raw = derSeq.getRaw();   
   return ndnboost::any(shared_ptr<PublicKey>(new PublicKey(algorithm, raw)));    
