Index: code/branches/doc/src/libraries/util/Debug.h
===================================================================
--- code/branches/doc/src/libraries/util/Debug.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/Debug.h	(revision 7352)
@@ -35,5 +35,5 @@
 /**
 @file
-@ingroup Util COUT
+@ingroup COUT
 @brief
     Handles different output-levels of errors, warnings, infos, and debug information.
Index: code/branches/doc/src/libraries/util/Math.h
===================================================================
--- code/branches/doc/src/libraries/util/Math.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/Math.h	(revision 7352)
@@ -34,5 +34,5 @@
 /**
     @file
-    @ingroup Util Math
+    @ingroup Math
     @brief Declaration and implementation of several math-functions, typedefs of some Ogre::Math classes to the orxonox namespace.
 */
Index: code/branches/doc/src/libraries/util/MultiType.h
===================================================================
--- code/branches/doc/src/libraries/util/MultiType.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/MultiType.h	(revision 7352)
@@ -34,5 +34,5 @@
 /**
     @file
-    @ingroup Util MultiType
+    @ingroup MultiType
     @brief Declaration of the MultiType and some helper constructs.
 
Index: code/branches/doc/src/libraries/util/MultiTypeValue.h
===================================================================
--- code/branches/doc/src/libraries/util/MultiTypeValue.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/MultiTypeValue.h	(revision 7352)
@@ -29,5 +29,5 @@
 /**
     @file
-    @ingroup Util MultiType
+    @ingroup MultiType
     @brief Declaration and Implementation of the MT_Value<T> class.
 
Index: code/branches/doc/src/libraries/util/Scope.h
===================================================================
--- code/branches/doc/src/libraries/util/Scope.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/Scope.h	(revision 7352)
@@ -29,5 +29,5 @@
 /**
 @file
-@ingroup Util SingletonScope
+@ingroup SingletonScope
 @brief Declaration of the classes that are needed to use Scopes:
 orxonox::Scope, orxonox::ScopeListener, and orxonox::ScopeManager.
Index: code/branches/doc/src/libraries/util/ScopedSingletonManager.h
===================================================================
--- code/branches/doc/src/libraries/util/ScopedSingletonManager.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/ScopedSingletonManager.h	(revision 7352)
@@ -29,5 +29,5 @@
 /**
     @file
-    @ingroup Util SingletonScope
+    @ingroup SingletonScope
     @brief Definition of orxonox::ScopedSingletonManager, orxonox::ClassScopedSingletonManager, and the ManageScopedSingleton macro.
 
Index: code/branches/doc/src/libraries/util/SharedPtr.h
===================================================================
--- code/branches/doc/src/libraries/util/SharedPtr.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/SharedPtr.h	(revision 7352)
@@ -29,10 +29,10 @@
 /**
     @defgroup SharedPtr SharedPtr<T>
-    @ingroup Util Object
+    @ingroup Util
 */
 
 /**
     @file
-    @ingroup Util SharedPtr
+    @ingroup SharedPtr
     @brief Definition of the SharedPtr template that is used to manage pointers.
 
Index: code/branches/doc/src/libraries/util/Singleton.h
===================================================================
--- code/branches/doc/src/libraries/util/Singleton.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/Singleton.h	(revision 7352)
@@ -34,5 +34,5 @@
 /**
     @file
-    @ingroup Util SingletonScope
+    @ingroup SingletonScope
     @brief Definition of the Singleton template that is used as base class for classes that allow only one instance.
 
Index: code/branches/doc/src/libraries/util/SmallObjectAllocator.h
===================================================================
--- code/branches/doc/src/libraries/util/SmallObjectAllocator.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/SmallObjectAllocator.h	(revision 7352)
@@ -29,10 +29,10 @@
 /**
     @defgroup SmallObjectAllocator SmallObjectAllocator
-    @ingroup Util Object
+    @ingroup Util
 */
 
 /**
     @file
-    @ingroup Util SmallObjectAllocator
+    @ingroup SmallObjectAllocator
     @brief Declaration of SmallObjectAllocator
 
Index: code/branches/doc/src/libraries/util/StringUtils.h
===================================================================
--- code/branches/doc/src/libraries/util/StringUtils.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/StringUtils.h	(revision 7352)
@@ -34,5 +34,5 @@
 /**
     @file
-    @ingroup Util String
+    @ingroup String
     @brief Declaration of several string manipulation functions, used in many parts of the game.
 */
Index: code/branches/doc/src/libraries/util/SubString.cc
===================================================================
--- code/branches/doc/src/libraries/util/SubString.cc	(revision 7332)
+++ code/branches/doc/src/libraries/util/SubString.cc	(revision 7352)
@@ -37,4 +37,9 @@
  *   Extended by Fabian 'x3n' Landau by the SL_PARENTHESES mode.
  */
+
+/**
+    @file
+    @brief Implementation of the SubString class.
+*/
 
 #include "SubString.h"
Index: code/branches/doc/src/libraries/util/SubString.h
===================================================================
--- code/branches/doc/src/libraries/util/SubString.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/SubString.h	(revision 7352)
@@ -39,6 +39,6 @@
  /**
     @file
-    @ingroup Util String
-    @brief a small class to get the parts of a string separated by commas
+    @ingroup String
+    @brief A helper class to split a string into several tokens.
 
     @anchor SubStringExample
Index: code/branches/doc/src/libraries/util/VA_NARGS.h
===================================================================
--- code/branches/doc/src/libraries/util/VA_NARGS.h	(revision 7332)
+++ code/branches/doc/src/libraries/util/VA_NARGS.h	(revision 7352)
@@ -31,4 +31,35 @@
     @ingroup Util
     @brief Declaration of the ORXONOX_VA_NARGS macro which returns the number of arguments passed to a variadic macro.
+
+    With this utility you can overload a macro for different numbers of arguments
+    (of course overloading is not possible for different types, as macros are not
+    type aware, but for different numbers of arguments is still very powerful).
+
+    Example: A macro to call functions
+    @code
+    myfunction();                                           // A static function
+    MyClass::myStaticFunction();                            // A static class function
+    MyClass::myFunction();                                  // A member function
+
+    #define CallFunction(...) \                             // Define a variadic macro that passes the arguments to the overloaded implementations
+        BOOST_PP_EXPAND(BOOST_PP_CAT(CallFunction, ORXONOX_VA_NARGS(__VA_ARGS__))(__VA_ARGS__))
+
+    #define CallFunction1(function) \                       // Overloaded macro for 1 argument
+        function()                                          // Calls the static function
+
+    #define CallFunction2(class, function) \                // Overloaded macro for 2 arguments
+        class::function()                                   // Calls the static class function
+
+    #define CallFunction3(class, function, object) \        // Overloaded macro for 3 arguments
+        object->class::function()                           // Calls the function on the object
+
+
+    CallFunction(myFunction);                               // Call the macro with 1 argument
+    CallFunction(MyClass, myStaticFunction);                // Call the macro with 2 arguments
+    CallFunction(MyClass, myFunction, new MyClass());       // Call the macro with 3 arguments
+    @endcode
+
+    Note that the first (variadic) macro concatenates the name "CallFunction" with
+    the number of arguments ("1" - "N"). Then all arguments are passed to the right macro.
 */
 
