diff --git a/src/util/signal-scoped-connection.hpp b/src/util/signal-scoped-connection.hpp
new file mode 100644
index 0000000..9104791
--- /dev/null
+++ b/src/util/signal-scoped-connection.hpp
@@ -0,0 +1,78 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2013-2014 Regents of the University of California.
+ *
+ * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
+ *
+ * ndn-cxx library is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ *
+ * You should have received copies of the GNU General Public License and GNU Lesser
+ * General Public License along with ndn-cxx, e.g., in COPYING.md file.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
+ */
+
+#ifndef NDN_UTIL_SIGNAL_SCOPED_CONNECTION_HPP
+#define NDN_UTIL_SIGNAL_SCOPED_CONNECTION_HPP
+
+#include "signal-connection.hpp"
+
+namespace ndn {
+namespace util {
+namespace signal {
+
+/** \brief disconnects a Connection automatically upon destruction
+ */
+class ScopedConnection : noncopyable
+{
+public:
+  ScopedConnection();
+
+  /** \brief implicit constructor from Connection
+   *  \param connection the Connection to be disconnected upon destruction
+   */
+  ScopedConnection(const Connection& connection);
+
+  /** \brief move constructor
+   */
+  ScopedConnection(ScopedConnection&& other);
+
+  /** \brief assigns a connection
+   *
+   *  If a different connection has been assigned to this instance previously,
+   *  that connection will be disconnected immediately.
+   */
+  ScopedConnection&
+  operator=(const Connection& connection);
+
+  /** \brief disconnects the connection
+   */
+  ~ScopedConnection();
+
+  /** \brief disconnects the connection manually
+   */
+  void
+  disconnect();
+
+  /** \brief releases the connection so that it won't be disconnected
+   *         when this ScopedConnection is destructed
+   */
+  void
+  release();
+
+private:
+  Connection m_connection;
+};
+
+} // namespace signal
+} // namespace util
+} // namespace ndn
+
+#endif // NDN_UTIL_SIGNAL_SCOPED_CONNECTION_HPP
