diff --git a/ndn-cxx/security/v2/certificate-bundle-fetcher.cpp b/ndn-cxx/security/v2/certificate-bundle-fetcher.cpp
index 9972511..2113a41 100644
--- a/ndn-cxx/security/v2/certificate-bundle-fetcher.cpp
+++ b/ndn-cxx/security/v2/certificate-bundle-fetcher.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2019 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -97,7 +97,6 @@
   Interest bundleInterest = Interest(bundleNamePrefix);
   bundleInterest.setCanBePrefix(true);
   bundleInterest.setMustBeFresh(true);
-  bundleInterest.setChildSelector(1);
   bundleInterest.setInterestLifetime(m_bundleInterestLifetime);
 
   m_face.expressInterest(bundleInterest,
diff --git a/ndn-cxx/security/v2/certificate-cache.cpp b/ndn-cxx/security/v2/certificate-cache.cpp
index d92c16e..aefa069 100644
--- a/ndn-cxx/security/v2/certificate-cache.cpp
+++ b/ndn-cxx/security/v2/certificate-cache.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2019 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -79,9 +79,6 @@
 const Certificate*
 CertificateCache::find(const Interest& interest) const
 {
-  if (interest.getChildSelector() >= 0) {
-    NDN_LOG_DEBUG("Certificate search using ChildSelector is not supported, searching as if selector not specified");
-  }
   if (interest.getName().size() > 0 && interest.getName()[-1].isImplicitSha256Digest()) {
     NDN_LOG_INFO("Certificate search using name with implicit digest is not yet supported");
   }
diff --git a/ndn-cxx/security/v2/certificate-cache.hpp b/ndn-cxx/security/v2/certificate-cache.hpp
index 435bdda..d0e412e 100644
--- a/ndn-cxx/security/v2/certificate-cache.hpp
+++ b/ndn-cxx/security/v2/certificate-cache.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2019 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -83,8 +83,6 @@
    * @param interest  The input interest packet.
    * @return The found certificate that matches the interest, nullptr if not found.
    *
-   * @note ChildSelector is not supported.
-   *
    * @note The returned value may be invalidated after next call to one of find methods.
    */
   const Certificate*
diff --git a/ndn-cxx/security/v2/trust-anchor-container.hpp b/ndn-cxx/security/v2/trust-anchor-container.hpp
index 48071e7..e69a74f 100644
--- a/ndn-cxx/security/v2/trust-anchor-container.hpp
+++ b/ndn-cxx/security/v2/trust-anchor-container.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2018 Regents of the University of California.
+ * Copyright (c) 2013-2019 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -115,8 +115,6 @@
    * @note The returned value may be invalidated after next call to one of `find` methods.
    *
    * @note Interest with implicit digest is not supported.
-   *
-   * @note ChildSelector is not supported.
    */
   const Certificate*
   find(const Interest& interest) const;
