diff --git a/ndn-cxx/util/dummy-client-face.hpp b/ndn-cxx/util/dummy-client-face.hpp
index 62c0ba9..bc92c7e 100644
--- a/ndn-cxx/util/dummy-client-face.hpp
+++ b/ndn-cxx/util/dummy-client-face.hpp
@@ -201,7 +201,7 @@
 
 namespace util {
 /// \deprecated Use ndn::DummyClientFace
-using DummyClientFace = ::ndn::DummyClientFace;
+using DummyClientFace [[deprecated("use ndn::DummyClientFace")]] = ::ndn::DummyClientFace;
 } // namespace util
 
 } // namespace ndn
diff --git a/ndn-cxx/util/notification-subscriber.hpp b/ndn-cxx/util/notification-subscriber.hpp
index 0191b7b..0d8cede 100644
--- a/ndn-cxx/util/notification-subscriber.hpp
+++ b/ndn-cxx/util/notification-subscriber.hpp
@@ -117,17 +117,20 @@
   exponentialBackoff(lp::Nack nack);
 
 public:
-  /** \brief Fires when a Nack is received.
+  /**
+   * \brief Fires when a Nack is received.
    */
-  Signal<NotificationSubscriberBase, lp::Nack> onNack;
+  ndn::signal::Signal<NotificationSubscriberBase, lp::Nack> onNack;
 
-  /** \brief Fires when no Notification is received within getInterestLifetime() period.
+  /**
+   * \brief Fires when no Notification is received within getInterestLifetime() period.
    */
-  Signal<NotificationSubscriberBase> onTimeout;
+  ndn::signal::Signal<NotificationSubscriberBase> onTimeout;
 
-  /** \brief Fires when a Data packet in the Notification Stream cannot be decoded as Notification.
+  /**
+   * \brief Fires when a Data packet in the notification stream cannot be decoded as a Notification.
    */
-  Signal<NotificationSubscriberBase, Data> onDecodeError;
+  ndn::signal::Signal<NotificationSubscriberBase, Data> onDecodeError;
 
 private:
   Face& m_face;
@@ -164,10 +167,11 @@
   }
 
 public:
-  /** \brief Fires when a Notification is received.
-   *  \note Removing all handlers will cause the subscriber to stop.
+  /**
+   * \brief Fires when a Notification is received.
+   * \note Removing all handlers will cause the subscriber to stop.
    */
-  Signal<NotificationSubscriber, Notification> onNotification;
+  ndn::signal::Signal<NotificationSubscriber, Notification> onNotification;
 
 private:
   bool
diff --git a/ndn-cxx/util/segment-fetcher.hpp b/ndn-cxx/util/segment-fetcher.hpp
index 202afff..ce61d9c 100644
--- a/ndn-cxx/util/segment-fetcher.hpp
+++ b/ndn-cxx/util/segment-fetcher.hpp
@@ -321,7 +321,7 @@
 
 namespace util {
 /// \deprecated Use ndn::SegmentFetcher
-using SegmentFetcher = ::ndn::SegmentFetcher;
+using SegmentFetcher [[deprecated("use ndn::SegmentFetcher")]] = ::ndn::SegmentFetcher;
 } // namespace util
 
 } // namespace ndn
diff --git a/ndn-cxx/util/segmenter.hpp b/ndn-cxx/util/segmenter.hpp
index eb70985..3f7a6dd 100644
--- a/ndn-cxx/util/segmenter.hpp
+++ b/ndn-cxx/util/segmenter.hpp
@@ -79,7 +79,7 @@
 
 namespace util {
 /// \deprecated Use ndn::Segmenter
-using Segmenter = ::ndn::Segmenter;
+using Segmenter [[deprecated("use ndn::Segmenter")]] = ::ndn::Segmenter;
 } // namespace util
 
 } // namespace ndn
diff --git a/ndn-cxx/util/signal/connection.hpp b/ndn-cxx/util/signal/connection.hpp
index 166b6cc..477d22c 100644
--- a/ndn-cxx/util/signal/connection.hpp
+++ b/ndn-cxx/util/signal/connection.hpp
@@ -102,7 +102,7 @@
 
 namespace ndn::util::signal {
 /// \deprecated Use ndn::signal::Connection
-using Connection = ::ndn::signal::Connection;
+using Connection [[deprecated("use ndn::signal::Connection")]] = ::ndn::signal::Connection;
 } // namespace ndn::util::signal
 
 #endif // NDN_CXX_UTIL_SIGNAL_CONNECTION_HPP
diff --git a/ndn-cxx/util/signal/scoped-connection.hpp b/ndn-cxx/util/signal/scoped-connection.hpp
index 3f39e2e..450ddf1 100644
--- a/ndn-cxx/util/signal/scoped-connection.hpp
+++ b/ndn-cxx/util/signal/scoped-connection.hpp
@@ -98,7 +98,7 @@
 
 namespace ndn::util::signal {
 /// \deprecated Use ndn::signal::ScopedConnection
-using ScopedConnection = ::ndn::signal::ScopedConnection;
+using ScopedConnection [[deprecated("use ndn::signal::ScopedConnection")]] = ::ndn::signal::ScopedConnection;
 } // namespace ndn::util::signal
 
 #endif // NDN_CXX_UTIL_SIGNAL_SCOPED_CONNECTION_HPP
diff --git a/ndn-cxx/util/signal/signal.hpp b/ndn-cxx/util/signal/signal.hpp
index 79c1f27..e168c69 100644
--- a/ndn-cxx/util/signal/signal.hpp
+++ b/ndn-cxx/util/signal/signal.hpp
@@ -241,7 +241,7 @@
 namespace ndn::util {
 /// \deprecated Use ndn::signal::Signal
 template<typename Owner, typename... TArgs>
-using Signal = ::ndn::signal::Signal<Owner, TArgs...>;
+using Signal [[deprecated("use ndn::signal::Signal")]] = ::ndn::signal::Signal<Owner, TArgs...>;
 } // namespace ndn::util
 
 #endif // NDN_CXX_UTIL_SIGNAL_SIGNAL_HPP
diff --git a/ndn-cxx/util/time.hpp b/ndn-cxx/util/time.hpp
index 726f792..5fb3138 100644
--- a/ndn-cxx/util/time.hpp
+++ b/ndn-cxx/util/time.hpp
@@ -204,9 +204,9 @@
   static constexpr bool is_steady = ::boost::chrono::system_clock::is_steady;
 
   /// \deprecated Use time_point
-  using TimePoint = time_point;
+  using TimePoint [[deprecated("use system_clock::time_point")]] = time_point;
   /// \deprecated Use duration
-  using Duration = duration;
+  using Duration [[deprecated("use system_clock::duration")]] = duration;
 
   static time_point
   now() noexcept;
@@ -236,9 +236,9 @@
   static constexpr bool is_steady = true;
 
   /// \deprecated Use time_point
-  using TimePoint = time_point;
+  using TimePoint [[deprecated("use steady_clock::time_point")]] = time_point;
   /// \deprecated Use duration
-  using Duration = duration;
+  using Duration [[deprecated("use steady_clock::duration")]] = duration;
 
   static time_point
   now() noexcept;
