Index: trunk/src/lib/particles/engine/particle_engine.cc
===================================================================
--- trunk/src/lib/particles/engine/particle_engine.cc	(revision 7221)
+++ trunk/src/lib/particles/engine/particle_engine.cc	(revision 7225)
@@ -122,5 +122,5 @@
 * @param system the System to connect to the Emitter
 */
-void ParticleEngine::addConnection(const char* emitter, const char* system)
+void ParticleEngine::addConnection(const std::string& emitter, const std::string& system)
 {
   ParticleEmitter* tmpEmit = dynamic_cast<ParticleEmitter*>(ClassList::getObject(emitter, CL_PARTICLE_EMITTER));//this->getEmitterByName(emitter);
@@ -132,7 +132,7 @@
   {
     if (tmpEmit == NULL)
-      PRINTF(2)("Emitter %s not found in the List of emitters, not connecting to %s\n", emitter, system);
+      PRINTF(2)("Emitter %s not found in the List of emitters, not connecting to %s\n", emitter.c_str(), system.c_str());
     if (tmpEmit == NULL)
-      PRINTF(2)("System %s not found in the List of emitters, not connecting to %s\n", system, emitter);
+      PRINTF(2)("System %s not found in the List of emitters, not connecting to %s\n", system.c_str(), emitter.c_str());
   }
 }
Index: trunk/src/lib/particles/engine/particle_engine.h
===================================================================
--- trunk/src/lib/particles/engine/particle_engine.h	(revision 7221)
+++ trunk/src/lib/particles/engine/particle_engine.h	(revision 7225)
@@ -45,5 +45,5 @@
   void addEmitter(ParticleEmitter* emitter);
   void addConnection(ParticleEmitter* emitter, ParticleSystem* system);
-  void addConnection(const char* emitter, const char* system);
+  void addConnection(const std::string& emitter, const std::string& system);
 
 
Index: trunk/src/lib/shell/shell_command.cc
===================================================================
--- trunk/src/lib/shell/shell_command.cc	(revision 7221)
+++ trunk/src/lib/shell/shell_command.cc	(revision 7225)
@@ -36,5 +36,5 @@
  * @param paramCount the count of parameters this command takes
  */
-ShellCommand::ShellCommand(const char* commandName, const char* className, const Executor& executor)
+ShellCommand::ShellCommand(const std::string& commandName, const std::string& className, const Executor& executor)
 {
   this->setClassID(CL_SHELL_COMMAND, "ShellCommand");
@@ -66,5 +66,5 @@
  * registers a new ShellCommand
  */
-ShellCommand* ShellCommand::registerCommand(const char* commandName, const char* className, const Executor& executor)
+ShellCommand* ShellCommand::registerCommand(const std::string& commandName, const std::string& className, const Executor& executor)
 {
   if (ShellCommand::isRegistered(commandName, className))
@@ -80,5 +80,5 @@
  * @param commandName the name of the command itself
  */
-void ShellCommand::unregisterCommand(const char* commandName, const char* className)
+void ShellCommand::unregisterCommand(const std::string& commandName, const std::string& className)
 {
   /// FIXME
@@ -118,5 +118,5 @@
  * This is checked in the registerCommand-function.
  */
-bool ShellCommand::isRegistered(const char* commandName, const char* className)
+bool ShellCommand::isRegistered(const std::string& commandName, const std::string& className)
 {
   if (ShellCommandClass::commandClassList == NULL)
@@ -132,7 +132,7 @@
     for (elem = checkClass->commandList.begin(); elem != checkClass->commandList.end(); elem++)
     {
-      if (!strcmp(commandName, (*elem)->getName()))
-      {
-        PRINTF(2)("Command '%s::%s' already registered\n", className, commandName);
+      if (commandName == (*elem)->getName())
+      {
+        PRINTF(2)("Command '%s::%s' already registered\n", className.c_str(), commandName.c_str());
         return true;
       }
@@ -272,5 +272,5 @@
  * @returns itself
  */
-ShellCommand* ShellCommand::setAlias(const char* alias)
+ShellCommand* ShellCommand::setAlias(const std::string& alias)
 {
   if (this == NULL)
@@ -352,31 +352,3 @@
 {
   return MultiType::MultiTypeToString((MT_Type)parameter);
-// FIXME
-  /*  switch (parameter)
-  {
-    case ParameterBool:
-      return "BOOL";
-      break;
-    case ParameterChar:
-      return "CHAR";
-      break;
-    case ParameterString:
-      return "STRING";
-      break;
-    case ParameterInt:
-      return "INT";
-      break;
-    case ParameterUInt:
-      return "UINT";
-      break;
-    case ParameterFloat:
-      return "FLOAT";
-      break;
-    case ParameterLong:
-      return "LONG";
-      break;
-    default:
-      return "NULL";
-      break;
-  }*/
-}
+}
Index: trunk/src/lib/shell/shell_command.h
===================================================================
--- trunk/src/lib/shell/shell_command.h	(revision 7221)
+++ trunk/src/lib/shell/shell_command.h	(revision 7225)
@@ -64,20 +64,20 @@
 
     ShellCommand* describe(const std::string& description);
-    ShellCommand* setAlias(const char* alias);
+    ShellCommand* setAlias(const std::string& alias);
     ShellCommand* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
                                 const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
                                 const MultiType& value4 = MT_NULL);
 
-    static ShellCommand* registerCommand(const char* commandName, const char* className, const Executor& executor);
+    static ShellCommand* registerCommand(const std::string& commandName, const std::string& className, const Executor& executor);
 
-    static void unregisterCommand(const char* commandName, const char* className);
+    static void unregisterCommand(const std::string& commandName, const std::string& className);
 
     static void debug();
 
   protected:
-    ShellCommand(const char* commandName, const char* className, const Executor& executor);
+    ShellCommand(const std::string& commandName, const std::string& className, const Executor& executor);
     ~ShellCommand();
 
-    static bool isRegistered(const char* commandName, const char* className);
+    static bool isRegistered(const std::string& commandName, const std::string& className);
     static const char* paramToString(long parameter);
 
Index: trunk/src/lib/shell/shell_completion.cc
===================================================================
--- trunk/src/lib/shell/shell_completion.cc	(revision 7221)
+++ trunk/src/lib/shell/shell_completion.cc	(revision 7225)
@@ -142,8 +142,6 @@
  * @return true on success, false otherwise
  */
-bool ShellCompletion::classComplete(const char* classBegin)
-{
-  if (unlikely(classBegin == NULL))
-    return false;
+bool ShellCompletion::classComplete(const std::string& classBegin)
+{
   const std::list<std::string>* clList = ClassList::getClassNames();
   if (clList != NULL)
@@ -163,8 +161,6 @@
  * @return true on success, false otherwise
  */
-bool ShellCompletion::objectComplete(const char* objectBegin, long classID)
-{
-  if (unlikely(objectBegin == NULL))
-    return false;
+bool ShellCompletion::objectComplete(const std::string& objectBegin, long classID)
+{
   const std::list<BaseObject*>* boList = ClassList::getList((ClassID)classID);
   if (boList != NULL)
@@ -186,8 +182,6 @@
  * @param classID the class' ID to complete the function of
  */
-bool ShellCompletion::functionComplete(const char* functionBegin, const char* className)
-{
-  if (unlikely(functionBegin == NULL))
-    return false;
+bool ShellCompletion::functionComplete(const std::string& functionBegin, const std::string& className)
+{
   std::list<std::string> fktList;
   ShellCommandClass::getCommandListOfClass(className, &fktList);
@@ -203,8 +197,6 @@
  * @returns true on succes, false if something went wrong
  */
-bool ShellCompletion::aliasComplete(const char* aliasBegin)
-{
-  if (unlikely(aliasBegin == NULL))
-    return false;
+bool ShellCompletion::aliasComplete(const std::string& aliasBegin)
+{
   std::list<std::string> aliasList;
   ShellCommandClass::getCommandListOfAlias(&aliasList);
@@ -224,5 +216,5 @@
  * @return true if ok, false otherwise
  */
-bool ShellCompletion::generalComplete(const char* begin, const char* displayAs, const char* addBack, const char* addFront)
+bool ShellCompletion::generalComplete(const std::string& begin, const std::string& displayAs, const std::string& addBack, const std::string& addFront)
 {
   if (this->input == NULL )
@@ -232,11 +224,10 @@
 
   ShellC_Element addElem = completionList.front();
-  const char* addString = addElem.name;
+  const std::string& addString = addElem.name;
   unsigned int addLength = 0;
-  unsigned int inputLenght = strlen(begin);
+  unsigned int inputLenght = begin.size();
 
   // Determin the longest Match
-  if (addString != NULL)
-    addLength = strlen(addString);
+  addLength = addString.size();
 
   SHELLC_TYPE changeType = SHELLC_NONE;
@@ -251,5 +242,5 @@
       changeType = (*charIT).type;
     }
-    PRINTF(0)("%s ", (*charIT).name);
+    PRINTF(0)("%s ", (*charIT).name.c_str());
     for (unsigned int i = inputLenght; i < addLength; i++)
       if (addString[i] != (*charIT).name[i])
@@ -263,7 +254,6 @@
   if (addLength >= inputLenght)
   {
-    char* adder = new char[addLength+1];
-    strncpy(adder, addString, addLength);
-    adder[addLength] = '\0';
+    std::string adder = addString;
+    adder.resize(addLength);
 
     if (this->input)
@@ -274,9 +264,8 @@
       if (completionList.size() == 1)
       {
-        if ( addBack != NULL )
+        if ( addBack != "")
          this->input->addCharacters(addBack);
         this->input->addCharacter(' ');
       }
-     delete[] adder;
     }
   }
@@ -290,9 +279,9 @@
  * !! The strings MUST NOT be deleted !!
  */
-bool ShellCompletion::addToCompleteList(const std::list<std::string>* inputList, const char* completionBegin, SHELLC_TYPE type)
-{
-  if (inputList == NULL || completionBegin == NULL)
-    return false;
-  unsigned int searchLength = strlen(completionBegin);
+bool ShellCompletion::addToCompleteList(const std::list<std::string>* inputList, const std::string& completionBegin, SHELLC_TYPE type)
+{
+  if (inputList == NULL)
+    return false;
+  unsigned int searchLength = completionBegin.size();
 
   list<std::string>::const_iterator string;
@@ -300,5 +289,5 @@
   {
     if ((*string).size() >= searchLength &&
-          !strncasecmp((*string).c_str(), completionBegin, searchLength))
+          !strncasecmp((*string).c_str(), completionBegin.c_str(), searchLength))
     {
       ShellC_Element newElem;
@@ -317,9 +306,9 @@
  * !! The strings MUST NOT be deleted !!
  */
-bool ShellCompletion::addToCompleteList(const std::list<BaseObject*>* inputList, const char* completionBegin, SHELLC_TYPE type)
-{
-  if (inputList == NULL || completionBegin == NULL)
-    return false;
-  unsigned int searchLength = strlen(completionBegin);
+bool ShellCompletion::addToCompleteList(const std::list<BaseObject*>* inputList, const std::string& completionBegin, SHELLC_TYPE type)
+{
+  if (inputList == NULL)
+    return false;
+  unsigned int searchLength = completionBegin.size();
 
   list<BaseObject*>::const_iterator bo;
@@ -328,5 +317,5 @@
     if ((*bo)->getName() != NULL &&
         strlen((*bo)->getName()) >= searchLength &&
-        !strncasecmp((*bo)->getName(), completionBegin, searchLength))
+          !strncasecmp((*bo)->getName(), completionBegin.c_str(), searchLength))
     {
       ShellC_Element newElem;
Index: trunk/src/lib/shell/shell_completion.h
===================================================================
--- trunk/src/lib/shell/shell_completion.h	(revision 7221)
+++ trunk/src/lib/shell/shell_completion.h	(revision 7225)
@@ -11,4 +11,5 @@
 
 #include <list>
+#include <string>
 
 // FORWARD DECLARATION
@@ -30,5 +31,5 @@
 //! A struct for ShellElements (these are used as containers to identify an Input for what it is)
 struct ShellC_Element{
-  const char*     name;     //!< the Name of the Element to be completed.
+  std::string     name;     //!< the Name of the Element to be completed.
   SHELLC_TYPE     type;     //!< the type of the Element
 };
@@ -42,16 +43,17 @@
 
   bool autoComplete(ShellInput* input = NULL);
-  bool classComplete(const char* classBegin);
+  bool classComplete(const std::string& classBegin);
 //  long classMatch(const char* input, unsigned int* length);
-  bool objectComplete(const char* objectBegin, long classID);
+  bool objectComplete(const std::string& objectBegin, long classID);
 //  bool objectMatch(const char* objectBegin, long classID, unsigned int* length);
-  bool functionComplete(const char* functionBegin, const char* className);
+  bool functionComplete(const std::string& functionBegin, const std::string& className);
 //  bool functionMatch(const char* functionBegin, long classID, unsigned int* length);
-  bool aliasComplete(const char* aliasBegin);
+  bool aliasComplete(const std::string& aliasBegin);
 
-  bool generalComplete(const char* begin, const char* displayAs = "%s", const char* addBack = NULL, const char* addFront = NULL);
+  bool generalComplete(const std::string& begin, const std::string& displayAs = "%s",
+                       const std::string& addBack = "", const std::string& addFront = "");
 
-  bool addToCompleteList(const std::list<std::string>* inputList, const char* completionBegin, SHELLC_TYPE type);
-  bool addToCompleteList(const std::list<BaseObject*>* inputList, const char* completionBegin, SHELLC_TYPE type);
+  bool addToCompleteList(const std::list<std::string>* inputList, const std::string& completionBegin, SHELLC_TYPE type);
+  bool addToCompleteList(const std::list<BaseObject*>* inputList, const std::string& completionBegin, SHELLC_TYPE type);
   void emptyCompletionList();
 
Index: trunk/src/lib/sound/sound_engine.cc
===================================================================
--- trunk/src/lib/sound/sound_engine.cc	(revision 7221)
+++ trunk/src/lib/sound/sound_engine.cc	(revision 7225)
@@ -352,10 +352,10 @@
 }
 
-bool SoundEngine::checkError(const char* error, unsigned int line)
+bool SoundEngine::checkError(const std::string& error, unsigned int line)
 {
   ALenum errorCode;
   if ((errorCode = alGetError()) != AL_NO_ERROR)
   {
-    PRINTF(1)("Error %s (line:%d): '%s'\n", error, line, SoundEngine::getALErrorString(errorCode));
+    PRINTF(1)("Error %s (line:%d): '%s'\n", error.c_str(), line, SoundEngine::getALErrorString(errorCode));
     return false;
   }
@@ -364,10 +364,10 @@
 }
 
-bool SoundEngine::checkALCError(const char* error, unsigned int line)
+bool SoundEngine::checkALCError(const std::string& error, unsigned int line)
 {
   ALenum errorCode;
   if ((errorCode = alcGetError(this->device)) != ALC_NO_ERROR)
   {
-    PRINTF(1)("Error %s (line:%d): '%s'\n", error, line, SoundEngine::getALCErrorString(errorCode));
+    PRINTF(1)("Error %s (line:%d): '%s'\n", error.c_str(), line, SoundEngine::getALCErrorString(errorCode));
     return false;
   }
Index: trunk/src/lib/sound/sound_engine.h
===================================================================
--- trunk/src/lib/sound/sound_engine.h	(revision 7221)
+++ trunk/src/lib/sound/sound_engine.h	(revision 7225)
@@ -59,6 +59,6 @@
 
   // error handling:
-    static bool checkError(const char* error, unsigned int line);
-    bool checkALCError(const char* error, unsigned int line);
+    static bool checkError(const std::string& error, unsigned int line);
+    bool checkALCError(const std::string& error, unsigned int line);
     static const char* getALErrorString(ALenum err);
     static const char* getALCErrorString(ALenum err);
Index: trunk/src/lib/util/loading/resource_manager.cc
===================================================================
--- trunk/src/lib/util/loading/resource_manager.cc	(revision 7221)
+++ trunk/src/lib/util/loading/resource_manager.cc	(revision 7225)
@@ -1009,9 +1009,8 @@
  * @returns the Number of the Type, or 0 (defautl) if not found.
  */
-ResourceType ResourceManager::stringToResourceType(const char* resourceType)
-{
-  assert(resourceType != NULL);
+ResourceType ResourceManager::stringToResourceType(const std::string& resourceType)
+{
   for (unsigned int i = 0; i < RESOURCE_TYPE_SIZE; i++)
-    if (!strcmp(resourceType, ResourceManager::resourceNames[i]))
+    if (resourceType == ResourceManager::resourceNames[i])
       return (ResourceType)i;
   return (ResourceType)0;
Index: trunk/src/lib/util/loading/resource_manager.h
===================================================================
--- trunk/src/lib/util/loading/resource_manager.h	(revision 7221)
+++ trunk/src/lib/util/loading/resource_manager.h	(revision 7225)
@@ -141,5 +141,5 @@
 
   static const char* ResourceTypeToChar(ResourceType type);
-  static ResourceType stringToResourceType(const char* resourceType);
+  static ResourceType stringToResourceType(const std::string& resourceType);
 
  private:
Index: trunk/src/lib/util/multi_type.h
===================================================================
--- trunk/src/lib/util/multi_type.h	(revision 7221)
+++ trunk/src/lib/util/multi_type.h	(revision 7225)
@@ -48,5 +48,4 @@
     MultiType& operator=(float value) { this->setFloat(value); return *this; };
     MultiType& operator=(char value) { this->setChar(value); return *this; };
-    MultiType& operator=(const char* value) { this->setString(value); return *this; };
     MultiType& operator=(const std::string& value) { this->setString(value); return *this; };
 
