diff --git a/src/util/crypto.hpp b/src/util/crypto.hpp
index d5ce89b..860b17d 100644
--- a/src/util/crypto.hpp
+++ b/src/util/crypto.hpp
@@ -41,17 +41,6 @@
 ConstBufferPtr
 computeSha256Digest(const uint8_t* data, size_t dataLength);
 
-/**
- * @brief Compute the sha-256 digest of data.
- *
- * @deprecated Use computeSha256Digest function instead
- */
-inline ConstBufferPtr
-sha256(const uint8_t* data, size_t dataLength)
-{
-  return computeSha256Digest(data, dataLength);
-}
-
 } // namespace crypto
 } // namespace ndn
 
diff --git a/src/util/ethernet.cpp b/src/util/ethernet.cpp
index c880d0c..e9160d9 100644
--- a/src/util/ethernet.cpp
+++ b/src/util/ethernet.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015 Regents of the University of California,
+ * Copyright (c) 2014-2017 Regents of the University of California,
  *                         Arizona Board of Regents,
  *                         Colorado State University,
  *                         University Pierre & Marie Curie, Sorbonne University,
@@ -81,7 +81,7 @@
 
   // - apparently gcc-4.6 does not support the 'hh' type modifier
   // - std::snprintf not found in some environments
-  //   http://redmine.named-data.net/issues/2299 for more information
+  //   https://redmine.named-data.net/issues/2299 for more information
   snprintf(s, sizeof(s), "%02x%c%02x%c%02x%c%02x%c%02x%c%02x",
            at(0), sep, at(1), sep, at(2), sep, at(3), sep, at(4), sep, at(5));
 
diff --git a/src/util/io.hpp b/src/util/io.hpp
index 7da812e..cad5a26 100644
--- a/src/util/io.hpp
+++ b/src/util/io.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2016 Regents of the University of California.
+ * Copyright (c) 2013-2017 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -62,8 +62,6 @@
   HEX
 };
 
-constexpr IoEncoding DEPRECATED(BASE_64) = BASE64;
-
 namespace detail {
 
 template<typename T>
diff --git a/src/util/notification-stream.hpp b/src/util/notification-stream.hpp
index d886173..212f7e5 100644
--- a/src/util/notification-stream.hpp
+++ b/src/util/notification-stream.hpp
@@ -38,7 +38,7 @@
 namespace util {
 
 /** \brief provides a publisher of Notification Stream
- *  \sa http://redmine.named-data.net/projects/nfd/wiki/Notification
+ *  \sa https://redmine.named-data.net/projects/nfd/wiki/Notification
  */
 template<typename Notification>
 class NotificationStream : noncopyable
diff --git a/src/util/scheduler.hpp b/src/util/scheduler.hpp
index cad5c09..e3927ac 100644
--- a/src/util/scheduler.hpp
+++ b/src/util/scheduler.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2016 Regents of the University of California.
+ * Copyright (c) 2013-2017 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -127,11 +127,6 @@
 class Scheduler : noncopyable
 {
 public:
-  /**
-   * \deprecated use EventCallback
-   */
-  typedef EventCallback Event;
-
   explicit
   Scheduler(boost::asio::io_service& ioService);
 
