diff --git a/Console/Node.hh b/Console/Node.hh
index cadc05763784eb252e89583d265b81e708b07a7d..0bed22b224f33fd47747bf919897b4ce480aeaf3 100644
--- a/Console/Node.hh
+++ b/Console/Node.hh
@@ -33,6 +33,67 @@
 
     \section console_tree The tree
 
+    We will start by giving a more complete example. This example contains most of the stuff needed
+    for using the console/config library.
+
+    \code
+    // Define callback function.
+    void mycommand(std::ostream & os, senf::console::Arguments const & args)
+    {
+        // ...
+        os << "!! Important message ...\n";
+    }
+
+    class SomeClass
+    {
+    public:
+        // Declare a directory node (proxy) for use by this class. This must be public so we can add
+        // it to the node tree later.
+        senf::console::ObjectDirectory<SomeClass> dir;
+
+        SomeClass() : dir(this) 
+        {
+            // You may document the directory here or later when adding it to the tree
+            dir.doc("Manager for something");
+
+            // Add a member function (the pointer-to-member is automatically bound to this instance)
+            dir.add("member", &SomeClass::member)
+                .doc("Do the member operation");
+        }
+
+        void member(std::ostream & os, senf::console::Arguments const & args)
+        {
+            // ...
+        }
+    };
+
+    int main(int, char**)
+    {
+        // Provide global documentation
+        senf::console::root()
+            .doc("This is someServer server");
+
+        // Add a new directory to the root and document it. All the mutators return the node object
+        // itself so operations can be chained.
+        senf::console::DirectoryNode & mydir (
+                .mkdir("myserver")
+                .doc("My server specific directory"));
+
+        // Add a command to that directory
+        mydir.add("mycommand", &mycommand)
+            .doc("mycommand <foo> [<bar>]\n\n"
+                 "If <bar> is given, flurgle the <foo>, otherwise burgle it");
+
+        // Create a SomeClass instance and add it's directory.
+        SomeClass someClass;
+        mydir.add("someClass", someClass.dir);
+
+        // Start the interactive console server
+        senf::console::Server::start(senf::INet4SocketAddress(senf::INet4Address::None, 23232u))
+            .name("someServer");
+    }
+    \endcode
+
     \subsection console_nodes Node types
 
     The console/config library tree consists of two basic node types:
@@ -123,69 +184,6 @@
 
     The senf::console::ObjectDirectory member should be declared public. This allows the user of the
     class to add the node to the tree.
-
-    \section console_long_example Example
-
-    The following is a more complete example. It uses most of the features you will be using from
-    the console library.
-
-    \code
-    // Define callback function.
-    void mycommand(std::ostream & os, senf::console::Arguments const & args)
-    {
-        // ...
-        os << "!! Important message ...\n";
-    }
-
-    class SomeClass
-    {
-    public:
-        // Declare a directory node (proxy) for use by this class. This must be public so we can add
-        // it to the node tree later.
-        senf::console::ObjectDirectory<SomeClass> dir;
-
-        SomeClass() : dir(this) 
-        {
-            // You may document the directory here or later when adding it to the tree
-            dir.doc("Manager for something");
-
-            // Add a member function (the pointer-to-member is automatically bound to this instance)
-            dir.add("member", &SomeClass::member)
-                .doc("Do the member operation");
-        }
-
-        void member(std::ostream & os, senf::console::Arguments const & args)
-        {
-            // ...
-        }
-    };
-
-    int main(int, char**)
-    {
-        // Provide global documentation
-        senf::console::root()
-            .doc("This is someServer server");
-
-        // Add a new directory to the root and document it. All the mutators return the node object
-        // itself so operations can be chained.
-        senf::console::DirectoryNode & mydir (
-                .mkdir("myserver")
-                .doc("My server specific directory"));
-
-        // Add a command to that directory
-        mydir.add("mycommand", &mycommand)
-            .doc("mycommand <foo> [<bar>]\n\n"
-                 "If <bar> is given, flurgle the <foo>, otherwise burgle it");
-
-        // Create a SomeClass instance and add it's directory.
-        SomeClass someClass;
-        mydir.add("someClass", someClass.dir);
-
-        // Start the interactive console server
-        senf::console::Server::start(senf::INet4SocketAddress(senf::INet4Address::None, 23232u))
-            .name("someServer");
-    }
-    \endcode
  */
 
 #ifndef HH_Node_
diff --git a/Console/Server.ih b/Console/Server.ih
index 57e0f5c9e3dc68145a90221c151bd004b028ae93..eb6ab722c53221072d2cb0a2ea6b5f89454b0f26 100644
--- a/Console/Server.ih
+++ b/Console/Server.ih
@@ -36,6 +36,10 @@ namespace senf {
 namespace console {
 namespace detail {
 
+    /** \brief Internal: Nonblocking boost::iostreams::sink
+
+        The sink discards data if the output socket would.
+     */
     class NonblockingSocketSink 
         : public boost::iostreams::sink
     {
diff --git a/Socket/Protocols/INet/INet6Address.cci b/Socket/Protocols/INet/INet6Address.cci
index 96e87f5e1d8c225f0fada4008958a79115b31204..408d0ac15b7b74727745aebc3bad6318287ef288 100644
--- a/Socket/Protocols/INet/INet6Address.cci
+++ b/Socket/Protocols/INet/INet6Address.cci
@@ -58,12 +58,11 @@ prefix_ senf::INet6Address::INet6Address(boost::uint16_t a0, boost::uint16_t a1,
     (*this)[15] = boost::uint8_t(a7);
 }
 
-prefix_ senf::INet6Address::INet6Address(in6_addr in6addr){
-	senf::INet6Address::from_data(&in6addr.s6_addr[0]);
+prefix_ senf::INet6Address senf::INet6Address::from_in6addr(in6_addr const & in6addr)
+{
+    return senf::INet6Address::from_data(&in6addr.s6_addr[0]);
 }
 
-
-
 prefix_ senf::INet6Address senf::INet6Address::from_inet4address(INet4Address addr4)
 {
     INet6Address addr;
diff --git a/Socket/Protocols/INet/INet6Address.hh b/Socket/Protocols/INet/INet6Address.hh
index 16d2e44e29875e44b22255853fe790cddaddfa58..1beecf9484544bc376ae21bcbed86dd94b6fca07 100644
--- a/Socket/Protocols/INet/INet6Address.hh
+++ b/Socket/Protocols/INet/INet6Address.hh
@@ -162,12 +162,12 @@ namespace senf {
         ///@{
 
         explicit INet6Address(senf::NoInit_t); ///< Construct uninitialized (!) address
-        INet6Address(boost::uint16_t a0=0u, boost::uint16_t a1=0u, boost::uint16_t a2=0u,
-                     boost::uint16_t a3=0u, boost::uint16_t a4=0u, boost::uint16_t a5=0u,
-                     boost::uint16_t a6=0u, boost::uint16_t a7=0u);
+        explicit INet6Address(boost::uint16_t a0=0u, boost::uint16_t a1=0u, boost::uint16_t a2=0u,
+                              boost::uint16_t a3=0u, boost::uint16_t a4=0u, boost::uint16_t a5=0u,
+                              boost::uint16_t a6=0u, boost::uint16_t a7=0u);
                                         ///< Construct an address constant
         
-        INet6Address(in6_addr in6addr); ///< Construct from std c struct
+        static INet6Address from_in6addr(in6_addr const & in6addr); ///< Construct from std C struct
 
         static INet6Address from_string(std::string const & s, Resolve_t resolve = ResolveINet6);
                                         ///< Convert string to address
diff --git a/Utils/Externals.dox b/Utils/Externals.dox
index 9d1dc8adaebced8d878ddabbc980e21196f622a4..3c1e96cbfbaf621334978933a4acfcb664474a03 100644
--- a/Utils/Externals.dox
+++ b/Utils/Externals.dox
@@ -14,6 +14,7 @@ namespace boost { class true_type {}; }
 namespace boost { class enable_shared_from_this {}; }
 namespace boost { namespace spirit { class grammar {}; } }
 namespace boost { namespace spirit { class grammar_def {}; } }
+namespace boost { namespace iostreams { class sink {}; } }
 namespace std { class exception {}; }
 namespace std { class string {}; }
 ///\}
diff --git a/doclib/senf.css b/doclib/senf.css
index e97f83f66afe334d71519a3bbf6263029039eb91..fe51388ec50d5b567439a9b6bd0a471ed6c62b18 100644
--- a/doclib/senf.css
+++ b/doclib/senf.css
@@ -512,6 +512,14 @@ p.commalist {
         text-indent: -4em;
 }
 
+#autotoc {
+        width: 20em;
+        background-color: #F5F5F5;
+        border: 1px solid #CCC;
+        padding: 0 1em;
+        margin: 1em 0;
+}
+
 #autotoc h1 {
         font-size: 120%;
         text-align: left;
@@ -520,7 +528,12 @@ p.commalist {
 #autotoc ul {
         list-style-type: none;
         padding: 0;
-        margin: 1em 0 1em 2em;
+        margin: 1em 0 1em 1em;
+}
+
+#autotoc li {
+        padding: 0 0 0 3em;
+        text-indent: -3em;
 }
 
 #autotoc ul li.level_h2 {