diff --git a/Packets/PacketData.hh b/Packets/PacketData.hh
index 9ebe32e8999131870f648477ac06b1a47d1e1418..8a64ec02f58d7c0ecd10bcc536b1abb5b46fd7b0 100644
--- a/Packets/PacketData.hh
+++ b/Packets/PacketData.hh
@@ -109,9 +109,14 @@ namespace senf {
         // only academic since what should an empty packet be good for ?
         void insert(iterator pos, byte v);
         void insert(iterator pos, size_type n, byte v);
+#       ifndef DOXYGEN
         template <class InputIterator>
         void insert(iterator pos, InputIterator f, InputIterator l,
                     typename boost::disable_if< boost::is_convertible<InputIterator,size_type> >::type * = 0);
+#       else
+        template <class InputIterator>
+        void insert(iterator pos, InputIterator f, InputIterator l);
+#       endif
 
         void erase(iterator pos);
         void erase(iterator first, iterator last);
diff --git a/Packets/PacketParser.hh b/Packets/PacketParser.hh
index db7a32fbca119361570d012e26c9afcee227aa9a..644e00d58670786796adc5f5a155769a4d418e0e 100644
--- a/Packets/PacketParser.hh
+++ b/Packets/PacketParser.hh
@@ -299,11 +299,16 @@ namespace senf {
 
         \ingroup packetparser
      */
+#   ifndef DOXYGEN
     template <class Parser>
     typename boost::enable_if< 
         boost::is_base_of<PacketParserBase, Parser>,
         Parser >::type
     operator<<(Parser target, Parser source);
+#   else
+    template <class Parser>
+    Parser operator<<(Parser target, Parser source);
+#   endif
 
     /** \brief Generic parser value assignment
 
diff --git a/Packets/ParseList.hh b/Packets/ParseList.hh
index 8e82f061384b2cd4f39f552e0cb44b529cfbfd99..3b7506b819635ccf6ea1229b2c12017d1f2a5d36 100644
--- a/Packets/ParseList.hh
+++ b/Packets/ParseList.hh
@@ -327,8 +327,12 @@ namespace senf {
         template <class Value>
         void insert(iterator pos, size_type n, Value const & t);
         template <class ForwardIterator>
+#       ifndef DOXYGEN
         void insert(iterator pos, ForwardIterator f, ForwardIterator l,
                     typename boost::disable_if< boost::is_convertible<ForwardIterator,size_type> >::type * = 0);
+#       else
+        void insert(iterator pos, ForwardIterator f, ForwardIterator l);
+#       endif
 
         void erase(iterator pos, size_type n=1);
         void erase(iterator f, iterator l);
diff --git a/Packets/ParseVec.hh b/Packets/ParseVec.hh
index f979f42b90eafe9c0d66492c3b68099d1deef93c..11546710d490e5d31e50e1f3bcae910564581a86 100644
--- a/Packets/ParseVec.hh
+++ b/Packets/ParseVec.hh
@@ -261,9 +261,14 @@ namespace senf {
         void insert(iterator pos, Value const & t);
         template <class Value>
         void insert(iterator pos, size_type n, Value const & t);
+#       ifndef DOXYGEN
         template <class ForwardIterator>
         void insert(iterator pos, ForwardIterator f, ForwardIterator l,
                     typename boost::disable_if< boost::is_convertible<ForwardIterator,size_type> >::type * = 0);
+#       else
+        template <class ForwardIterator>
+        void insert(iterator pos, ForwardIterator f, ForwardIterator l);
+#       endif
 
         void erase(iterator pos, size_type n=1);
         void erase(iterator f, iterator l);
diff --git a/Socket/ClientSocketHandle.hh b/Socket/ClientSocketHandle.hh
index 2c951b770d6bfd2a4cc2de198d5b8b3ec16d9e34..2e2372a1b5bff5fd7c6e75be7f60dc9ab65a7675 100644
--- a/Socket/ClientSocketHandle.hh
+++ b/Socket/ClientSocketHandle.hh
@@ -170,9 +170,13 @@ namespace senf {
         */
         std::string  read         (unsigned limit=0);
         template <class ForwardWritableRange>
+#       ifndef DOXYGEN
         typename boost::range_iterator<ForwardWritableRange>::type
                      read         (ForwardWritableRange const & range,
                                    typename boost::disable_if< boost::is_convertible<ForwardWritableRange,unsigned> >::type * = 0);
+#       else
+        typename boost::range_iterator<ForwardWritableRange>::type
+                     read         (ForwardWritableRange const & range);
                                         ///< Read data into range
                                         /**< Read data into the given range. At most
                                              <tt>boost::size(range)</tt> characters are read. The
@@ -185,6 +189,7 @@ namespace senf {
                                                  last read character 
                                              \see \ref read() \n
                                                   <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
+#       endif
         template <class ForwardWritableRange>
         typename boost::range_iterator<ForwardWritableRange>::type
                      read         (ForwardWritableRange & range,
diff --git a/Socket/LLAddressing.hh b/Socket/LLAddressing.hh
index 779312316a757c3a97873ba99551da8b2abe140a..41823051e2d889bc9a41b921133826686ab1bacf 100644
--- a/Socket/LLAddressing.hh
+++ b/Socket/LLAddressing.hh
@@ -96,9 +96,14 @@ namespace senf {
         // This is for sending packets ..
         // We must use enable_if here, so this constructor will not hide
         // above constructor if passed a plain int or short argument
+#       ifndef DOXYGEN
         template <class ForwardRange>
         explicit LLSocketAddress(ForwardRange const & address, std::string interface="",
                                  typename boost::enable_if_c<! boost::is_integral<ForwardRange>::value >::type * = 0);
+#       else
+        template <class ForwardRange>
+        explicit LLSocketAddress(ForwardRange const & address, std::string interface="");
+#       endif
 
         void clear();