diff --git a/etc/doxygen/pages/HowTos.dox b/etc/doxygen/pages/HowTos.dox
index 0d70b14d22d98064a40a96a01ae3392fcd1b6439..c45f0fb6708a3b7ce295c05a7395b022b74ff901 100644
--- a/etc/doxygen/pages/HowTos.dox
+++ b/etc/doxygen/pages/HowTos.dox
@@ -33,6 +33,31 @@ The corresponding cpp file (MyGuiPluginWidgetController.cpp) :
 A CMakeLists.txt file to compile this gui plugin:
 \include CMakeLists.txt.dox
 
+To add proper documentation for your gui plugin, create a doxygen page in your MyGuiPluginWidgetController.h:
+\code{.unparsed}
+namespace armarx
+{
+    /**
+    * \page ${PACKAGENAME}-GuiPlugins-MyGuiPlugin MyGuiPlugin
+    * \brief The MyGuiPlugin allows you to ...
+    *
+    * \image html MyGuiPlugin.png
+    *
+    * This is a detailled description of the MyGuiPlugin
+    * gui plugin. It is very awesome.
+    *
+    * \see MyGuiPluginGuiPlugin
+    */
+...
+\endcode
+
+and add it as subpage to ${PACKAGENAME}/etc/doxygen/pages/GuiPlugins.dox:
+\code
+\subpage ${PACKAGENAME}-GuiPlugins-MyGuiPlugin "MyGuiPlugin"
+\endcode
+
+Images (e.g. a screenshot of the widget) go to ${PACKAGENAME}/etc/doxygen/images/.
+
 \note All network calls (e.g. with Ice) should be in a seperate thread like armarx::RunningTask, armarx::PeriodicTask or QThread
 since they can take a long time to complete and block the complete GUI if executed in the qt main-event-loop.
 QTimer or timerEvent(QTimerEvent) are running in the same thread as the main application loop, so they are not