diff --git a/PPI/DebugModules.cti b/PPI/DebugModules.cti
index d603cc8ab661607b4afc612040d8f22ba5559dfd..f9b90d539d5931fab0f978fc2e227747d75a7997 100644
--- a/PPI/DebugModules.cti
+++ b/PPI/DebugModules.cti
@@ -32,22 +32,19 @@
 ///////////////////////////////cti.p///////////////////////////////////////
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::module::debug::LogSink<Stream,Area,level>
+// senf::ppi::module::debug::Logger<Stream,Area,level>
 
 template <class Stream, class Area, class Level>
-prefix_ senf::ppi::module::debug::LogSink<Stream,Area,Level>::LogSink()
-{
-    noroute(input);
-    input.onRequest(&LogSink::request);
-}
+prefix_ senf::ppi::module::debug::Logger<Stream,Area,Level>::Logger()
+{}
 
 ////////////////////////////////////////
 // private members
 
 template <class Stream, class Area, class Level>
-prefix_ void senf::ppi::module::debug::LogSink<Stream,Area,Level>::request()
+prefix_ void
+senf::ppi::module::debug::Logger<Stream,Area,Level>::v_handlePacket(Packet const & packet)
 {
-    Packet packet (input());
     SENF_LOG_BLOCK_TPL((Stream)(Area)(Level)({
         packet.dump(log);
         hexdump(packet.last().data().begin(), packet.last().data().end(),log);
diff --git a/PPI/DebugModules.hh b/PPI/DebugModules.hh
index 1ea0f2b755c05cfc21ad13910e336ff066ea4e59..f382dd6bfd12a9ddaeb02c9fb165b196a00af023 100644
--- a/PPI/DebugModules.hh
+++ b/PPI/DebugModules.hh
@@ -30,7 +30,7 @@
 #include <deque>
 #include "../Utils/safe_bool.hh"
 #include "../Packets/Packets.hh"
-#include "Module.hh"
+#include "MonitorModule.hh"
 #include "ActiveFeeder.hh"
 #include "../Utils/Logger/SenfLog.hh"
 
@@ -269,18 +269,15 @@ namespace debug {
     template < class Stream = log::Debug,
                class Area   = log::DefaultArea,
                class Level  = log::VERBOSE >
-    class LogSink
-        : public module::Module
+    class Logger
+        : public MonitorModule<>
     {
-        SENF_PPI_MODULE(LogSink);
+        SENF_PPI_MODULE(Logger);
     public:
-
-        connector::PassiveInput<> input;
-
-        LogSink();
+        Logger();
 
     private:
-        void request();
+        virtual void v_handlePacket(Packet const & packet);
     };
 
 }}}}
diff --git a/PPI/DebugModules.test.cc b/PPI/DebugModules.test.cc
index fa198bd07e457447654f8e46b78894255fcdbd69..76a1d4509f40d633a389ea997d382407a3a49d6b 100644
--- a/PPI/DebugModules.test.cc
+++ b/PPI/DebugModules.test.cc
@@ -134,9 +134,9 @@ BOOST_AUTO_UNIT_TEST(logSink)
     logTarget.route<senf::log::Debug,senf::log::VERBOSE>();
 
     debug::ActiveFeederSource source;
-    debug::LogSink<> sink;
+    debug::Logger<> logger;
 
-    ppi::connect(source,sink);
+    ppi::connect(source,logger);
     senf::PacketData::byte data[] = { 0x13u, 0x24u, 0x35u };
     source.submit( senf::DataPacket::create(data) );
     senf::ppi::run();