diff --git a/PPI/SocketReader.hh b/PPI/SocketReader.hh
index c85060342e54d8c1c9df0632eb9f39b627e2b415..5d2691303d4a977a1c5e2370ec7d30d0cb7d1dac 100644
--- a/PPI/SocketReader.hh
+++ b/PPI/SocketReader.hh
@@ -74,22 +74,26 @@ namespace module {
     /** \brief Input module reading data from an arbitrary FileHandle
 
         This input module will read data from a FileHandle object and parse the data according to
-        the \a Reader.
-        
-        The \a Reader must fulfill the following interface:
+        the \a Reader. The default reader is senf::ppi::PacketReader <> which reads the data into a
+        senf::DataPacket. To parse the data according to some other packet type, pass that packet
+        type to senf::ppi::PacketReader:
         \code
-          class SomeReader
-          {
-          public:
-              typedef unspecified_type Handle;   // type of handle requested
-              SomeReader();                      // default constructible
-              Packet operator()(Handle handle);  // extraction function
-          };
+        senf::ppi::module::ActiveSocketReader< senf::ppi::PacketReader<senf::EthernetPacket> > reader;
+        \endcode
+        declares a \a reader module reading senf::EthrtnetPacket's.
+
+        A \a Reader must fulfill the following interface:
+        \code
+        class SomeReader
+        {
+        public:
+            typedef unspecified_type Handle;   // type of handle requested
+            SomeReader();                      // default constructible
+            Packet operator()(Handle handle);  // extraction function
+        };
         \endcode
-        
         Whenever the FileHandle object is ready for reading, the \a Reader's \c operator() is called
-        to read a packet. The default \a Reader is \c PacketReader<>, which will read packets from a
-        datagram SocketHandle into DataPacket's. You may 
+        to read a packet.
 
         \ingroup io_modules
      */
diff --git a/PPI/SocketWriter.hh b/PPI/SocketWriter.hh
index dccb2189166e58c40105688d0461ef2a3d11fea9..118273d26f52e2965f087784337f12843f77f9ab 100644
--- a/PPI/SocketWriter.hh
+++ b/PPI/SocketWriter.hh
@@ -73,7 +73,10 @@ namespace module {
         output module is active. This requires the file handle to be able to signal its readiness to
         accept more data via the Scheduler.
 
-        The \a Writer must fulfill the following interface:
+        The default \a Writer is senf::ppi::PacketWriter which will write out the complete packet to
+        the file handle.
+
+        A \a Writer must fulfill the following interface:
         \code
           class SomeWriter
           {
@@ -83,6 +86,7 @@ namespace module {
               void operator()(Handle handle, Packet packet);       // insertion function
           };
         \endcode
+        Whenever a packet is received for sending, the \a Writer's \c operator() is called.
 
         \ingroup io_modules
      */
@@ -115,6 +119,9 @@ namespace module {
         mechanism. Either this is desired (like for a UDP socket) or some additional bandwidth
         shaping needs to be used.
 
+        The default \a Writer is senf::ppi::PacketWriter which will write out the complete packet to
+        the file handle.
+
         The \a Writer must fulfill the following interface:
         \code
           class SomeWriter
@@ -125,6 +132,7 @@ namespace module {
               void operator()(Handle handle, Packet packet);       // insertion function
           };
         \endcode
+        Whenever a packet is received for sending, the \a Writer's \c operator() is called.
 
         \ingroup io_modules
      */