diff --git a/doc/additionalDoc/extension.h b/doc/additionalDoc/extension.h
index 130595fe4916a4bbe334a2685ab7505471369dfb..5142357bc3d1b24e9daceafbb81f64dc958aaa9d 100644
--- a/doc/additionalDoc/extension.h
+++ b/doc/additionalDoc/extension.h
@@ -36,11 +36,11 @@ It is providing a step-by-step way of building an entity
 \section sec_htw_helpers Helpers
 
 When writing entities you might use some macros which are very useful to write your class.
-They are given also in the <a href="http://projects.laas.fr/gepetto/doc/stack-of-tasks/sot-core/master/doxygen-html">sot-core</a> package as well.
 
 \subsection subsec_howto_typedef Entity helpers
 
 The header <b>entity-helper.h</b> is defining a type called EntityClassName 
+
 \section sec_howto_macros_helpers Macro helpers
 
 \subsection subsec_howto_macros_helpers Preprocessing macros for signals
@@ -95,17 +95,27 @@ The header <b>entity-helper.h</b> is defining a type called EntityClassName
 
     </ul>
   <li> 
-  </li>
+  </li> Inner signals
+    <ul>
       <li> <b> DECLARE_SIGNAL_INNER(signal_name,type)</b>
       Inner signal are signal that depend on a state of the entity and not on input signals.
       This macro declares an inner signal with the following pattern:
       \code
       m_signal_nameSINNER
       \endcode
-   </li>
-   <li> <b>DEFINE_SIGNAL_INNER_FUNCTION</b> 
-This macro 
-</li>
+      It also creates a member function with the following pattern:
+      \code
+      type & EntityClassName::nameSINNER_function(signal_name)(type &, int)
+      \endcode
+      </li>
+      <li> <b>DEFINE_SIGNAL_INNER_FUNCTION(signal_name,type)</b> 
+      This macro is used to implement the method related to signal_name. More precisely 
+      it provides the header of the member function(i.e. method) declaration.
+      </li>
+      <li><b>DECLARE_SIGNAL_INNER_FUNCTION(signal_name,type)</b>
+      This macros declares the member function used to handle the access to this signal.
+      </li>
+    </ul>
 </ul>
 
 */
diff --git a/tests/debug-logger-winit.cpp b/tests/debug-logger-winit.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e13f8f3f464ce673328b7de78976801816bff23c
--- /dev/null
+++ b/tests/debug-logger-winit.cpp
@@ -0,0 +1,89 @@
+/* Copyright 2019, LAAS-CNRS
+ *
+ * Olivier Stasse
+ *
+ * See LICENSE file
+ *
+ */
+#include <sstream>
+#include <iostream>
+#include <dynamic-graph/entity.h>
+#include <dynamic-graph/exception-factory.h>
+#include "dynamic-graph/factory.h"
+#include "dynamic-graph/pool.h"
+
+#define ENABLE_RT_LOG
+#include <dynamic-graph/real-time-logger.h>
+#include <dynamic-graph/logger.h>
+
+#define BOOST_TEST_MODULE debug-logger
+
+#include <boost/test/unit_test.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+using boost::test_tools::output_test_stream;
+
+
+namespace dynamicgraph
+{
+  class CustomEntity : public Entity
+  {
+  public:
+    static const std::string CLASS_NAME;
+    virtual const std::string& getClassName () const
+    {
+      return CLASS_NAME;
+    }
+    CustomEntity (const std::string n)
+      : Entity (n)
+    {
+      logger_.setTimeSample(0.001);
+      logger_.setStreamPrintPeriod(0.005);
+      logger_.setVerbosity(VERBOSITY_ALL);
+      LoggerVerbosity alv = logger_.getVerbosity();
+      BOOST_CHECK(alv==VERBOSITY_ALL);
+    }
+    
+    ~CustomEntity()
+    {
+    }
+    void testDebugTrace()
+    {
+      sendMsg("This is a message of level MSG_TYPE_DEBUG",MSG_TYPE_DEBUG);
+      sendMsg("This is a message of level MSG_TYPE_INFO",MSG_TYPE_INFO);
+      sendMsg("This is a message of level MSG_TYPE_WARNING",MSG_TYPE_WARNING);
+      sendMsg("This is a message of level MSG_TYPE_ERROR",MSG_TYPE_ERROR);
+      sendMsg("This is a message of level MSG_TYPE_DEBUG_STREAM",MSG_TYPE_DEBUG_STREAM);
+      sendMsg("This is a message of level MSG_TYPE_INFO_STREAM",MSG_TYPE_INFO_STREAM);
+      sendMsg("This is a message of level MSG_TYPE_WARNING_STREAM",MSG_TYPE_WARNING_STREAM);
+      sendMsg("This is a message of level MSG_TYPE_ERROR_STREAM",MSG_TYPE_ERROR_STREAM);
+
+      logger_.countdown();
+
+    }
+  };
+  DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (CustomEntity,"CustomEntity");
+}
+
+BOOST_AUTO_TEST_CASE(debug_logger_wrong_initialization)
+{
+  std::ofstream of;
+  dynamicgraph::RealTimeLogger::instance();
+  //of.open("/tmp/dg-LOGS.txt",std::ofstream::out|std::ofstream::app); 
+  //  dgADD_OSTREAM_TO_RTLOG (of);
+  
+  BOOST_CHECK_EQUAL (dynamicgraph::CustomEntity::CLASS_NAME, "CustomEntity");
+  
+  dynamicgraph::CustomEntity& entity = *(dynamic_cast<dynamicgraph::CustomEntity *>(
+    dynamicgraph::FactoryStorage::getInstance()->newEntity("CustomEntity",
+							   "my-entity-2")));
+
+  for(unsigned int i=0;i<10000;i++)
+    {
+      entity.testDebugTrace();
+    }
+
+  dynamicgraph::RealTimeLogger::destroy();
+}
+
+