Index: trunk/src/lib/shell/shell_command.cc
===================================================================
--- trunk/src/lib/shell/shell_command.cc	(revision 7399)
+++ trunk/src/lib/shell/shell_command.cc	(revision 7401)
@@ -90,10 +90,6 @@
       std::vector<ShellCommand*>::iterator cmd;
       for (cmd = cmdClass->commandList.begin(); cmd < cmdClass->commandList.end(); cmd++)
-      {
         if (commandName == (*cmd)->getName())
-        {
           delete (*cmd);
-        }
-      }
     }
   }
@@ -166,5 +162,4 @@
             return true;
           }
-          /// TODO CHECK FOR STATIC functions.
         }
       }
@@ -232,5 +227,5 @@
 
   /**
-   * lets a command be described
+   * @brief lets a command be described
    * @param description the description of the Given command
    */
@@ -289,5 +284,5 @@
 
   /**
-   * prints out nice information about the Shells Commands
+   * @brief prints out nice information about the Shells Commands
    */
   void ShellCommand::debug()
@@ -314,9 +309,9 @@
 
   /**
-   * converts a Parameter to a String
+   * @brief converts a Parameter to a String
    * @param parameter the Parameter we have.
    * @returns the Name of the Parameter at Hand
    */
-  const char* ShellCommand::paramToString(long parameter)
+  const std::string& ShellCommand::paramToString(long parameter)
   {
     return MultiType::MultiTypeToString((MT_Type)parameter);
Index: trunk/src/lib/shell/shell_command.h
===================================================================
--- trunk/src/lib/shell/shell_command.h	(revision 7399)
+++ trunk/src/lib/shell/shell_command.h	(revision 7401)
@@ -82,5 +82,5 @@
 
     static bool isRegistered(const std::string& commandName, const std::string& className);
-    static const char* paramToString(long parameter);
+    static const std::string& paramToString(long parameter);
 
   private:
Index: trunk/src/lib/util/multi_type.cc
===================================================================
--- trunk/src/lib/util/multi_type.cc	(revision 7399)
+++ trunk/src/lib/util/multi_type.cc	(revision 7401)
@@ -39,20 +39,20 @@
   switch (this->type)
   {
-    default:
+      default:
       this->value.Float = 0.0f;
       break;
-    case MT_BOOL:
+      case MT_BOOL:
       this->value.Bool = false;
       break;
-    case MT_INT:
+      case MT_INT:
       this->value.Int = 0;
       break;
-    case MT_FLOAT:
+      case MT_FLOAT:
       this->value.Float = 0.0f;
       break;
-    case MT_CHAR:
+      case MT_CHAR:
       this->value.Char = '\0';
       break;
-    case MT_STRING:
+      case MT_STRING:
       this->storedString = "";
       break;
@@ -148,15 +148,15 @@
   switch (this->type)
   {
-    case MT_NULL:
+      case MT_NULL:
       return true;
-    case MT_BOOL:
+      case MT_BOOL:
       return (this->value.Bool == mt.value.Bool);
-    case MT_INT:
+      case MT_INT:
       return (this->value.Int == mt.value.Int);
-    case MT_CHAR:
+      case MT_CHAR:
       return (this->value.Char == mt.value.Char);
-    case MT_FLOAT:
+      case MT_FLOAT:
       return (this->value.Float == mt.value.Float);
-    case MT_STRING:
+      case MT_STRING:
       return (this->storedString == mt.storedString);
   }
@@ -175,17 +175,17 @@
   switch (type)
   {
-    case MT_BOOL:
+      case MT_BOOL:
       this->setBool(this->getBool());
       break;
-    case MT_INT:
+      case MT_INT:
       this->setInt(this->getInt());
       break;
-    case MT_FLOAT:
+      case MT_FLOAT:
       this->setFloat(this->getFloat());
       break;
-    case MT_CHAR:
+      case MT_CHAR:
       this->setChar(this->getChar());
       break;
-    case MT_STRING:
+      case MT_STRING:
       this->setString(this->getString());
       break;
@@ -405,5 +405,5 @@
 #endif
   ("MultiType of Type '%s' :: Values: BOOL: '%d', INT: '%d', FLOAT: '%f', CHAR: '%c', STRING '%s'\n",
-   MultiType::MultiTypeToString(this->type),
+   MultiType::MultiTypeToString(this->type).c_str(),
    this->getBool(),
    this->getInt(),
@@ -422,20 +422,20 @@
   switch ( this->type )
   {
-    case MT_BOOL:
+      case MT_BOOL:
       this->setBool(false);
       break;
-    case MT_INT:
+      case MT_INT:
       this->setInt(0);
       break;
-    case MT_FLOAT:
+      case MT_FLOAT:
       this->setFloat(0.0f);
       break;
-    case MT_CHAR:
+      case MT_CHAR:
       this->setChar('\0');
       break;
-    case MT_STRING:
+      case MT_STRING:
       this->setString("");
       break;
-    default:
+      default:
 #ifdef DEBUG
       PRINTF(2)("Unknown Type not reseting\n");
@@ -450,20 +450,20 @@
  * @returns: the Type as a constant String (do not delete)
  */
-const char* MultiType::MultiTypeToString(MT_Type type)
+const std::string& MultiType::MultiTypeToString(MT_Type type)
 {
   switch ( type )
   {
-    case MT_BOOL:
-      return "bool";
-    case MT_INT:
-      return "int";
-    case MT_FLOAT:
-      return "float";
-    case MT_CHAR:
-      return "char";
-    case MT_STRING:
-      return "string";
-  }
-  return "NONE";
+      case MT_BOOL:
+      return MultiType::typeNames[1];
+      case MT_INT:
+      return MultiType::typeNames[2];
+      case MT_FLOAT:
+      return MultiType::typeNames[3];
+      case MT_CHAR:
+      return MultiType::typeNames[4];
+      case MT_STRING:
+      return MultiType::typeNames[5];
+  }
+  return MultiType::typeNames[0];
 }
 
@@ -475,15 +475,26 @@
 MT_Type MultiType::StringToMultiType(const std::string& type)
 {
-  if (type == "bool")
+  if (type == MultiType::typeNames[1])
     return MT_BOOL;
-  if (type == "int")
+  if (type == MultiType::typeNames[2])
     return MT_INT;
-  if (type, "float")
+  if (type == MultiType::typeNames[3])
     return MT_FLOAT;
-  if (type == "char")
+  if (type == MultiType::typeNames[4])
     return MT_CHAR;
-  if (type == "string")
+  if (type == MultiType::typeNames[5])
     return MT_STRING;
 
   return MT_NULL;
 }
+
+
+const std::string MultiType::typeNames[] =
+  {
+    "NONE",      //0
+    "bool",      //1
+    "int",       //2
+    "float",     //3
+    "char",      //4
+    "string"     //5
+  };
Index: trunk/src/lib/util/multi_type.h
===================================================================
--- trunk/src/lib/util/multi_type.h	(revision 7399)
+++ trunk/src/lib/util/multi_type.h	(revision 7401)
@@ -92,18 +92,20 @@
     void debug() const;
 
-    static const char* MultiTypeToString(MT_Type type);
+    static const std::string& MultiTypeToString(MT_Type type);
     static MT_Type StringToMultiType(const std::string& type);
 
   private:
+    //! A union, that combines types into as little memory as possible.
     union MultiTypeValue
     {
-      bool              Bool;
-      int               Int;
-      float             Float;
-      char              Char;
-//      std::string*      String;
-    }                   value;
-    std::string         storedString;
-    MT_Type             type;
+      bool                       Bool;              //!< If it is a BOOL
+      int                        Int;               //!< If it is an INT
+      float                      Float;             //!< If it is a FLOAT
+      char                       Char;              //!< If it is a CHAR
+    }                            value;             //!< The Value.
+    std::string                  storedString;      //!< The Stored String.
+    MT_Type                      type;              //!< The Type stored in this MultiType
+
+    static const std::string     typeNames[];       //!< List of TypeNames for conversion.
 };
 
