diff --git a/Packets/PacketParser.hh b/Packets/PacketParser.hh
index 010780eaba02c5814e29fd569db029615f03bf28..ca57409154697af70a8cd872c217e7d958ac4545 100644
--- a/Packets/PacketParser.hh
+++ b/Packets/PacketParser.hh
@@ -181,10 +181,8 @@ namespace senf {
         Both kinds of parser need to derive from PacketParserBase and implement several required
         members. Which members to implement depends on the parsers flavor. There are two ways how to
         do this.
-        \li If the parser just consists of a simple sequence of consecutive fields (sub-parsers),
-            the \ref SENF_PACKET_PARSER_DEFINE_FIELDS and \ref
-            SENF_PACKET_PARSER_DEFINE_FIXED_FIELDS macros provide a simple and convenient way to
-            define the packet
+        \li If the parser just consists of sequence of consecutive fields (sub-parsers), the \ref
+            packetparsermacros provide a simple yet flexible way to define a packet parser.
         \li In more complex cases, you need to implement the necessary members manually.
 
         This documentation is about the manual implementation. You should nevertheless read through
diff --git a/Scheduler/ClockService.cc b/Scheduler/ClockService.cc
index e481c142652acbce3c3552151ed41c42e9c33bbe..21a34b4201a5960195856c8c7f4bcd2ca54d862d 100644
--- a/Scheduler/ClockService.cc
+++ b/Scheduler/ClockService.cc
@@ -49,6 +49,7 @@ struct senf::ClockService::Impl
     void block();
     void unblock();
 
+    /// Internal: temporarily block signals (RAII idiom)
     struct Blocker {
         Blocker(Impl * i) : impl(i) { impl->block(); }
         ~Blocker() { impl->unblock(); }
diff --git a/Scheduler/ClockService.hh b/Scheduler/ClockService.hh
index d17eaf91ff1c1624fad8dc583fe092e3a19384bb..bb9bdd100522a841fe35b21dde5759dee7c902c3 100644
--- a/Scheduler/ClockService.hh
+++ b/Scheduler/ClockService.hh
@@ -160,6 +160,7 @@ namespace senf {
         boost::posix_time::ptime heartbeat_;
 
         // I don't want this header to depend on the legacy C headers.
+        /// Internal: ClockService private data (PIMPL idiom)
         struct Impl;
         boost::scoped_ptr<Impl> impl_;
 
diff --git a/Scheduler/Scheduler.hh b/Scheduler/Scheduler.hh
index 94918af13b528922c306014bb68c9e572fd039ef..421325d1bc3437b5df8e20bf0df3dab528043956 100644
--- a/Scheduler/Scheduler.hh
+++ b/Scheduler/Scheduler.hh
@@ -281,6 +281,7 @@ namespace senf {
         void unregisterSignal(unsigned signal);
                                         ///< Remove signal handler for \a signal
 
+        /// The signal number passed to registerSignal or unregisterSignal is invalid
         struct InvalidSignalNumberException : public std::exception
         { virtual char const * what() const throw() 
                 { return "senf::Scheduler::InvalidSignalNumberException"; } };