Index: /code/branches/presentation2/src/Orxonox.cc
===================================================================
--- /code/branches/presentation2/src/Orxonox.cc	(revision 6393)
+++ /code/branches/presentation2/src/Orxonox.cc	(revision 6394)
@@ -62,5 +62,5 @@
         std::string strCmdLine;
         for (int i = 1; i < argc; ++i)
-            strCmdLine += argv[i] + std::string(" ");
+            strCmdLine += argv[i] + ' ';
 #endif
 
Index: /code/branches/presentation2/src/libraries/core/ArgumentCompletionFunctions.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/ArgumentCompletionFunctions.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/ArgumentCompletionFunctions.cc	(revision 6394)
@@ -72,5 +72,5 @@
                 else
                 {
-                    std::string dir = startdirectory.string();
+                    const std::string& dir = startdirectory.string();
                     if (dir.size() > 0 && dir[dir.size() - 1] == ':')
                         startdirectory = dir + '/';
@@ -130,5 +130,5 @@
                 if (variable != identifier->second->getLowercaseConfigValueMapEnd())
                 {
-                    std::string valuestring = variable->second->toString();
+                    const std::string& valuestring = variable->second->toString();
                     oldvalue.push_back(ArgumentCompletionListElement(valuestring, getLowercase(valuestring), "Old value: " + valuestring));
                 }
Index: /code/branches/presentation2/src/libraries/core/BaseObject.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/BaseObject.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/BaseObject.cc	(revision 6394)
@@ -36,5 +36,4 @@
 #include <tinyxml/tinyxml.h>
 
-#include "util/StringUtils.h"
 #include "CoreIncludes.h"
 #include "Event.h"
@@ -278,5 +277,5 @@
         if (it != this->eventStates_.end())
         {
-            COUT(2) << "Warning: Overwriting EventState in class " << this->getIdentifier()->getName() << "." << std::endl;
+            COUT(2) << "Warning: Overwriting EventState in class " << this->getIdentifier()->getName() << '.' << std::endl;
             delete (it->second);
         }
@@ -348,5 +347,5 @@
         if (it != this->eventStates_.end())
             it->second->process(event, this);
-        else if (event.statename_ != "")
+        else if (!event.statename_.empty())
             COUT(2) << "Warning: \"" << event.statename_ << "\" is not a valid state in object \"" << this->getName() << "\" of class " << this->getIdentifier()->getName() << "." << std::endl;
         else
@@ -386,5 +385,5 @@
         this->mainStateFunctor_ = 0;
 
-        if (this->mainStateName_ != "")
+        if (!this->mainStateName_.empty())
         {
             this->registerEventStates();
@@ -437,5 +436,5 @@
             for (std::list<std::string>::iterator it = eventnames.begin(); it != eventnames.end(); ++it)
             {
-                std::string statename = (*it);
+                const std::string& statename = (*it);
 
                 // if the event state is already known, continue with the next state
@@ -447,6 +446,6 @@
                 if (!container)
                 {
-                    ExecutorMember<BaseObject>* setfunctor = createExecutor(createFunctor(&BaseObject::addEventSource), std::string( "BaseObject" ) + "::" + "addEventSource" + "(" + statename + ")");
-                    ExecutorMember<BaseObject>* getfunctor = createExecutor(createFunctor(&BaseObject::getEventSource), std::string( "BaseObject" ) + "::" + "getEventSource" + "(" + statename + ")");
+                    ExecutorMember<BaseObject>* setfunctor = createExecutor(createFunctor(&BaseObject::addEventSource), std::string( "BaseObject" ) + "::" + "addEventSource" + '(' + statename + ')');
+                    ExecutorMember<BaseObject>* getfunctor = createExecutor(createFunctor(&BaseObject::getEventSource), std::string( "BaseObject" ) + "::" + "getEventSource" + '(' + statename + ')');
                     setfunctor->setDefaultValue(1, statename);
                     getfunctor->setDefaultValue(1, statename);
Index: /code/branches/presentation2/src/libraries/core/ClassTreeMask.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/ClassTreeMask.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/ClassTreeMask.cc	(revision 6394)
@@ -816,10 +816,10 @@
             // Calculate the prefix: + means included, - means excluded
             if (it->isIncluded())
-                out << "+";
+                out << '+';
             else
-                out << "-";
+                out << '-';
 
             // Put the name of the corresponding class on the stream
-            out << it->getClass()->getName() << " ";
+            out << it->getClass()->getName() << ' ';
         }
 
Index: /code/branches/presentation2/src/libraries/core/CommandEvaluation.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/CommandEvaluation.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/CommandEvaluation.cc	(revision 6394)
@@ -50,5 +50,5 @@
         this->commandTokens_.split(command, " ", SubString::WhiteSpaces, false, '\\', false, '"', false, '(', ')', false, '\0');
 
-        this->additionalParameter_ = "";
+        this->additionalParameter_.clear();
 
         this->bEvaluatedParams_ = false;
@@ -60,8 +60,8 @@
         this->functionclass_ = 0;
         this->function_ = 0;
-        this->possibleArgument_ = "";
-        this->argument_ = "";
-
-        this->errorMessage_ = "";
+        this->possibleArgument_.clear();
+        this->argument_.clear();
+
+        this->errorMessage_.clear();
         this->state_ = CommandState::Empty;
     }
@@ -79,5 +79,5 @@
         if (this->bEvaluatedParams_ && this->function_)
         {
-            COUT(6) << "CE_execute (evaluation): " << this->function_->getName() << " " << this->param_[0] << " " << this->param_[1] << " " << this->param_[2] << " " << this->param_[3] << " " << this->param_[4] << std::endl;
+            COUT(6) << "CE_execute (evaluation): " << this->function_->getName() << ' ' << this->param_[0] << ' ' << this->param_[1] << ' ' << this->param_[2] << ' ' << this->param_[3] << ' ' << this->param_[4] << std::endl;
             (*this->function_)(this->param_[0], this->param_[1], this->param_[2], this->param_[3], this->param_[4]);
             return true;
@@ -98,5 +98,5 @@
     }
 
-    std::string CommandEvaluation::complete()
+    const std::string& CommandEvaluation::complete()
     {
         if (!this->bNewCommand_)
@@ -114,8 +114,8 @@
                             return (this->command_ = this->function_->getName());
                         else
-                            return (this->command_ = this->function_->getName() + " ");
+                            return (this->command_ = this->function_->getName() + ' ');
                     }
                     else if (this->functionclass_)
-                        return (this->command_ = this->functionclass_->getName() + " ");
+                        return (this->command_ = this->functionclass_->getName() + ' ');
                     break;
                 case CommandState::Function:
@@ -123,7 +123,7 @@
                     {
                         if (this->function_->getParamCount() == 0)
-                            return (this->command_ = this->functionclass_->getName() + " " + this->function_->getName());
+                            return (this->command_ = this->functionclass_->getName() + ' ' + this->function_->getName());
                         else
-                            return (this->command_ = this->functionclass_->getName() + " " + this->function_->getName() + " ");
+                            return (this->command_ = this->functionclass_->getName() + ' ' + this->function_->getName() + ' ');
                     }
                     break;
@@ -131,5 +131,5 @@
                 case CommandState::Params:
                 {
-                    if (this->argument_ == "" && this->possibleArgument_ == "")
+                    if (this->argument_.empty() && this->possibleArgument_.empty())
                         break;
 
@@ -137,7 +137,7 @@
                     if (this->command_[this->command_.size() - 1] != ' ')
                         maxIndex -= 1;
-                    std::string whitespace = "";
-
-                    if (this->possibleArgument_ != "")
+                    std::string whitespace;
+
+                    if (!this->possibleArgument_.empty())
                     {
                         this->argument_ = this->possibleArgument_;
@@ -146,5 +146,5 @@
                     }
 
-                    return (this->command_ = this->commandTokens_.subSet(0, maxIndex).join() + " " + this->argument_ + whitespace);
+                    return (this->command_ = this->commandTokens_.subSet(0, maxIndex).join() + ' ' + this->argument_ + whitespace);
                     break;
                 }
@@ -262,11 +262,11 @@
     std::string CommandEvaluation::dump(const std::list<std::pair<const std::string*, const std::string*> >& list)
     {
-        std::string output = "";
+        std::string output;
         for (std::list<std::pair<const std::string*, const std::string*> >::const_iterator it = list.begin(); it != list.end(); ++it)
         {
             if (it != list.begin())
-                output += " ";
-
-            output += *(*it).second;
+                output += ' ';
+
+            output += *(it->second);
         }
         return output;
@@ -275,9 +275,9 @@
     std::string CommandEvaluation::dump(const ArgumentCompletionList& list)
     {
-        std::string output = "";
+        std::string output;
         for (ArgumentCompletionList::const_iterator it = list.begin(); it != list.end(); ++it)
         {
             if (it != list.begin())
-                output += " ";
+                output += ' ';
 
             output += (*it).getDisplay();
@@ -295,17 +295,17 @@
         {
             if (i != 0)
-                output += " ";
+                output += ' ';
 
             if (command->defaultValueSet(i))
-                output += "[";
+                output += '[';
             else
-                output += "{";
+                output += '{';
 
             output += command->getTypenameParam(i);
 
             if (command->defaultValueSet(i))
-                output += "=" + command->getDefaultValue(i).getString() + "]";
+                output += '=' + command->getDefaultValue(i).getString() + ']';
             else
-                output += "}";
+                output += '}';
         }
         return output;
Index: /code/branches/presentation2/src/libraries/core/CommandEvaluation.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/CommandEvaluation.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/CommandEvaluation.h	(revision 6394)
@@ -66,5 +66,5 @@
 
             bool execute() const;
-            std::string complete();
+            const std::string& complete();
             std::string hint() const;
             void evaluateParams();
@@ -82,5 +82,5 @@
                 { this->additionalParameter_ = param; this->bEvaluatedParams_ = false; }
             inline std::string getAdditionalParameter() const
-                { return (this->additionalParameter_ != "") ? (" " + this->additionalParameter_) : ""; }
+                { return (!this->additionalParameter_.empty()) ? (' ' + this->additionalParameter_) : ""; }
 
             void setEvaluatedParameter(unsigned int index, MultiType param);
Index: /code/branches/presentation2/src/libraries/core/CommandExecutor.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/CommandExecutor.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/CommandExecutor.cc	(revision 6394)
@@ -59,5 +59,5 @@
         if (it != CommandExecutor::getInstance().consoleCommandShortcuts_.end())
         {
-            COUT(2) << "Warning: Overwriting console-command shortcut with name " << command->getName() << "." << std::endl;
+            COUT(2) << "Warning: Overwriting console-command shortcut with name " << command->getName() << '.' << std::endl;
         }
 
@@ -215,5 +215,5 @@
                         CommandExecutor::getEvaluation().state_ = CommandState::Error;
                         AddLanguageEntry("commandexecutorunknownfirstargument", "is not a shortcut nor a classname");
-                        CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getArgument(0) + " " + GetLocalisation("commandexecutorunknownfirstargument") + ".";
+                        CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getArgument(0) + ' ' + GetLocalisation("commandexecutorunknownfirstargument") + '.';
                         return;
                     }
@@ -231,5 +231,5 @@
                     {
                         // It's a shortcut
-                        std::string functionname = *(*CommandExecutor::getEvaluation().listOfPossibleFunctions_.begin()).first;
+                        const std::string& functionname = *CommandExecutor::getEvaluation().listOfPossibleFunctions_.begin()->first;
                         CommandExecutor::getEvaluation().function_ = CommandExecutor::getPossibleCommand(functionname);
                         if (getLowercase(functionname) != getLowercase(CommandExecutor::getArgument(0)))
@@ -243,5 +243,5 @@
                         if (CommandExecutor::getEvaluation().function_->getParamCount() > 0)
                         {
-                            CommandExecutor::getEvaluation().command_ += " ";
+                            CommandExecutor::getEvaluation().command_ += ' ';
                             CommandExecutor::getEvaluation().bCommandChanged_ = true;
                         }
@@ -251,5 +251,5 @@
                     {
                         // It's a classname
-                        std::string classname = *(*CommandExecutor::getEvaluation().listOfPossibleIdentifiers_.begin()).first;
+                        const std::string& classname = *CommandExecutor::getEvaluation().listOfPossibleIdentifiers_.begin()->first;
                         CommandExecutor::getEvaluation().functionclass_ = CommandExecutor::getPossibleIdentifier(classname);
                         if (getLowercase(classname) != getLowercase(CommandExecutor::getArgument(0)))
@@ -260,5 +260,5 @@
                         CommandExecutor::getEvaluation().state_ = CommandState::Function;
                         CommandExecutor::getEvaluation().function_ = 0;
-                        CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + " ";
+                        CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + ' ';
                         // Move on to next case
                     }
@@ -268,5 +268,5 @@
                         CommandExecutor::getEvaluation().state_ = CommandState::Error;
                         AddLanguageEntry("commandexecutorunknownfirstargumentstart", "There is no command or classname starting with");
-                        CommandExecutor::getEvaluation().errorMessage_ = "Error: " + GetLocalisation("commandexecutorunknownfirstargumentstart") + " " + CommandExecutor::getArgument(0) + ".";
+                        CommandExecutor::getEvaluation().errorMessage_ = "Error: " + GetLocalisation("commandexecutorunknownfirstargumentstart") + ' ' + CommandExecutor::getArgument(0) + '.';
                         return;
                     }
@@ -319,5 +319,5 @@
                         {
                             // It's a function
-                            std::string functionname = *(*CommandExecutor::getEvaluation().listOfPossibleFunctions_.begin()).first;
+                            const std::string& functionname = *CommandExecutor::getEvaluation().listOfPossibleFunctions_.begin()->first;
                             CommandExecutor::getEvaluation().function_ = CommandExecutor::getPossibleCommand(functionname, CommandExecutor::getEvaluation().functionclass_);
                             if (getLowercase(functionname) != getLowercase(CommandExecutor::getArgument(1)))
@@ -327,8 +327,8 @@
                             }
                             CommandExecutor::getEvaluation().state_ = CommandState::ParamPreparation;
-                            CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + " " + CommandExecutor::getEvaluation().function_->getName();
+                            CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + ' ' + CommandExecutor::getEvaluation().function_->getName();
                             if (CommandExecutor::getEvaluation().function_->getParamCount() > 0)
                             {
-                                CommandExecutor::getEvaluation().command_ += " ";
+                                CommandExecutor::getEvaluation().command_ += ' ';
                                 CommandExecutor::getEvaluation().bCommandChanged_ = true;
                             }
@@ -340,5 +340,5 @@
                             CommandExecutor::getEvaluation().state_ = CommandState::Error;
                             AddLanguageEntry("commandexecutorunknownsecondargumentstart", "has no function starting with");
-                            CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getEvaluation().functionclass_->getName() + " " + GetLocalisation("commandexecutorunknownsecondargumentstart") + " " + CommandExecutor::getArgument(1) + ".";
+                            CommandExecutor::getEvaluation().errorMessage_ = "Error: " + CommandExecutor::getEvaluation().functionclass_->getName() + ' ' + GetLocalisation("commandexecutorunknownsecondargumentstart") + ' ' + CommandExecutor::getArgument(1) + '.';
                             return;
                         }
@@ -346,5 +346,5 @@
                         {
                             // There are several possibilities
-                            CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + " " + CommandExecutor::getCommonBegin(CommandExecutor::getEvaluation().listOfPossibleFunctions_);
+                            CommandExecutor::getEvaluation().command_ = CommandExecutor::getEvaluation().functionclass_->getName() + ' ' + CommandExecutor::getCommonBegin(CommandExecutor::getEvaluation().listOfPossibleFunctions_);
                             CommandExecutor::getEvaluation().function_ = CommandExecutor::getPossibleCommand(CommandExecutor::getArgument(1), CommandExecutor::getEvaluation().functionclass_);
                             CommandExecutor::getEvaluation().bCommandChanged_ = true;
@@ -451,13 +451,13 @@
     }
 
-    std::string CommandExecutor::getArgument(unsigned int index)
+    const std::string& CommandExecutor::getArgument(unsigned int index)
     {
         if (index < (CommandExecutor::getEvaluation().commandTokens_.size()))
             return CommandExecutor::getEvaluation().commandTokens_[index];
         else
-            return "";
-    }
-
-    std::string CommandExecutor::getLastArgument()
+            return BLANKSTRING;
+    }
+
+    const std::string& CommandExecutor::getLastArgument()
     {
         return CommandExecutor::getArgument(CommandExecutor::argumentsGiven() - 1);
@@ -467,8 +467,8 @@
     {
         CommandExecutor::getEvaluation().listOfPossibleIdentifiers_.clear();
-        std::string lowercase = getLowercase(fragment);
+        const std::string& lowercase = getLowercase(fragment);
         for (std::map<std::string, Identifier*>::const_iterator it = Identifier::getLowercaseStringIdentifierMapBegin(); it != Identifier::getLowercaseStringIdentifierMapEnd(); ++it)
-            if ((*it).second->hasConsoleCommands())
-                if ((*it).first.find(lowercase) == 0 || fragment == "")
+            if (it->second->hasConsoleCommands())
+                if (it->first.find(lowercase) == 0 || fragment.empty())
                     CommandExecutor::getEvaluation().listOfPossibleIdentifiers_.push_back(std::pair<const std::string*, const std::string*>(&(*it).first, &(*it).second->getName()));
     }
@@ -477,9 +477,9 @@
     {
         CommandExecutor::getEvaluation().listOfPossibleFunctions_.clear();
-        std::string lowercase = getLowercase(fragment);
+        const std::string& lowercase = getLowercase(fragment);
         if (!identifier)
         {
             for (std::map<std::string, ConsoleCommand*>::const_iterator it = CommandExecutor::getLowercaseConsoleCommandShortcutMapBegin(); it != CommandExecutor::getLowercaseConsoleCommandShortcutMapEnd(); ++it)
-                if ((*it).first.find(lowercase) == 0 || fragment == "")
+                if (it->first.find(lowercase) == 0 || fragment.empty())
                     CommandExecutor::getEvaluation().listOfPossibleFunctions_.push_back(std::pair<const std::string*, const std::string*>(&(*it).first, &(*it).second->getName()));
         }
@@ -487,5 +487,5 @@
         {
             for (std::map<std::string, ConsoleCommand*>::const_iterator it = identifier->getLowercaseConsoleCommandMapBegin(); it != identifier->getLowercaseConsoleCommandMapEnd(); ++it)
-                if ((*it).first.find(lowercase) == 0 || fragment == "")
+                if (it->first.find(lowercase) == 0 || fragment.empty())
                     CommandExecutor::getEvaluation().listOfPossibleFunctions_.push_back(std::pair<const std::string*, const std::string*>(&(*it).first, &(*it).second->getName()));
         }
@@ -497,15 +497,15 @@
 
         CommandExecutor::getEvaluation().listOfPossibleArguments_.clear();
-        std::string lowercase = getLowercase(fragment);
+        const std::string& lowercase = getLowercase(fragment);
         for (ArgumentCompletionList::const_iterator it = command->getArgumentCompletionListBegin(); it != command->getArgumentCompletionListEnd(); ++it)
         {
-            if ((*it).lowercaseComparison())
-            {
-                if ((*it).getComparable().find(lowercase) == 0 || fragment == "")
+            if (it->lowercaseComparison())
+            {
+                if (it->getComparable().find(lowercase) == 0 || fragment.empty())
                     CommandExecutor::getEvaluation().listOfPossibleArguments_.push_back(*it);
             }
             else
             {
-                if ((*it).getComparable().find(fragment) == 0 || fragment == "")
+                if (it->getComparable().find(fragment) == 0 || fragment.empty())
                     CommandExecutor::getEvaluation().listOfPossibleArguments_.push_back(*it);
             }
@@ -515,5 +515,5 @@
     Identifier* CommandExecutor::getPossibleIdentifier(const std::string& name)
     {
-        std::string lowercase = getLowercase(name);
+        const std::string& lowercase = getLowercase(name);
         std::map<std::string, Identifier*>::const_iterator it = Identifier::getLowercaseStringIdentifierMap().find(lowercase);
         if ((it != Identifier::getLowercaseStringIdentifierMapEnd()) && (*it).second->hasConsoleCommands())
@@ -525,5 +525,5 @@
     ConsoleCommand* CommandExecutor::getPossibleCommand(const std::string& name, Identifier* identifier)
     {
-        std::string lowercase = getLowercase(name);
+        const std::string& lowercase = getLowercase(name);
         if (!identifier)
         {
@@ -541,24 +541,24 @@
     }
 
-    std::string CommandExecutor::getPossibleArgument(const std::string& name, ConsoleCommand* command, unsigned int param)
+    const std::string& CommandExecutor::getPossibleArgument(const std::string& name, ConsoleCommand* command, unsigned int param)
     {
         CommandExecutor::createArgumentCompletionList(command, param);
 
-        std::string lowercase = getLowercase(name);
+        const std::string& lowercase = getLowercase(name);
         for (ArgumentCompletionList::const_iterator it = command->getArgumentCompletionListBegin(); it != command->getArgumentCompletionListEnd(); ++it)
         {
-            if ((*it).lowercaseComparison())
-            {
-                if ((*it).getComparable() == lowercase)
-                    return (*it).getString();
+            if (it->lowercaseComparison())
+            {
+                if (it->getComparable() == lowercase)
+                    return it->getString();
             }
             else
             {
-                if ((*it).getComparable() == name)
-                    return (*it).getString();
-            }
-        }
-
-        return "";
+                if (it->getComparable() == name)
+                    return it->getString();
+            }
+        }
+
+        return BLANKSTRING;
     }
 
@@ -589,9 +589,9 @@
         else if (list.size() == 1)
         {
-            return ((*(*list.begin()).first) + " ");
-        }
-        else
-        {
-            std::string output = "";
+            return ((*list.begin()->first) + ' ');
+        }
+        else
+        {
+            std::string output;
             for (unsigned int i = 0; true; i++)
             {
@@ -630,9 +630,9 @@
         else if (list.size() == 1)
         {
-            return ((*list.begin()).getComparable() + " ");
-        }
-        else
-        {
-            std::string output = "";
+            return (list.begin()->getComparable() + ' ');
+        }
+        else
+        {
+            std::string output;
             for (unsigned int i = 0; true; i++)
             {
@@ -641,6 +641,6 @@
                 for (ArgumentCompletionList::const_iterator it = list.begin(); it != list.end(); ++it)
                 {
-                    std::string argumentComparable = (*it).getComparable();
-                    std::string argument = (*it).getString();
+                    const std::string& argumentComparable = it->getComparable();
+                    const std::string& argument = it->getString();
                     if (argument.size() > i)
                     {
Index: /code/branches/presentation2/src/libraries/core/CommandExecutor.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/CommandExecutor.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/CommandExecutor.h	(revision 6394)
@@ -90,6 +90,6 @@
             static unsigned int argumentsGiven();
             static bool enoughArgumentsGiven(ConsoleCommand* command);
-            static std::string getArgument(unsigned int index);
-            static std::string getLastArgument();
+            static const std::string& getArgument(unsigned int index);
+            static const std::string& getLastArgument();
 
             static void createListOfPossibleIdentifiers(const std::string& fragment);
@@ -99,5 +99,5 @@
             static Identifier* getPossibleIdentifier(const std::string& name);
             static ConsoleCommand* getPossibleCommand(const std::string& name, Identifier* identifier = 0);
-            static std::string getPossibleArgument(const std::string& name, ConsoleCommand* command, unsigned int param);
+            static const std::string& getPossibleArgument(const std::string& name, ConsoleCommand* command, unsigned int param);
 
             static void createArgumentCompletionList(ConsoleCommand* command, unsigned int param);
Index: /code/branches/presentation2/src/libraries/core/CommandLineParser.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/CommandLineParser.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/CommandLineParser.cc	(revision 6394)
@@ -63,5 +63,5 @@
                 this->value_ = temp;
             }
-            else if (value == "")
+            else if (value.empty())
             {
                 this->bHasDefaultValue_ = false;
@@ -140,5 +140,5 @@
                     OrxAssert(cmdLineArgsShortcut_.find(it->second->getShortcut()) == cmdLineArgsShortcut_.end(),
                         "Cannot have two command line shortcut with the same name.");
-                    if (it->second->getShortcut() != "")
+                    if (!it->second->getShortcut().empty())
                         cmdLineArgsShortcut_[it->second->getShortcut()] = it->second;
                 }
@@ -165,5 +165,5 @@
                         {
                             // negative number as a value
-                            value += arguments[i] + " ";
+                            value += arguments[i] + ' ';
                         }
                         else
@@ -173,15 +173,15 @@
                             // save old data first
                             value = removeTrailingWhitespaces(value);
-                            if (name != "")
+                            if (!name.empty())
                             {
                                 checkFullArgument(name, value, bParsingFile);
-                                name = "";
-                                assert(shortcut == "");
+                                name.clear();
+                                assert(shortcut.empty());
                             }
-                            else if (shortcut != "")
+                            else if (!shortcut.empty())
                             {
                                 checkShortcut(shortcut, value, bParsingFile);
-                                shortcut = "";
-                                assert(name == "");
+                                shortcut.clear();
+                                assert(name.empty());
                             }
 
@@ -198,5 +198,5 @@
 
                             // reset value string
-                            value = "";
+                            value.clear();
                         }
                     }
@@ -205,5 +205,5 @@
                         // value string
 
-                        if (name == "" && shortcut == "")
+                        if (name.empty() && shortcut.empty())
                         {
                             ThrowException(Argument, "Expected \"-\" or \"-\" in command line arguments.\n");
@@ -218,13 +218,13 @@
             // parse last argument
             value = removeTrailingWhitespaces(value);
-            if (name != "")
+            if (!name.empty())
             {
                 checkFullArgument(name, value, bParsingFile);
-                assert(shortcut == "");
-            }
-            else if (shortcut != "")
+                assert(shortcut.empty());
+            }
+            else if (!shortcut.empty())
             {
                 checkShortcut(shortcut, value, bParsingFile);
-                assert(name == "");
+                assert(name.empty());
             }
         }
@@ -291,9 +291,9 @@
             it != inst.cmdLineArgs_.end(); ++it)
         {
-            if (it->second->getShortcut() != "")
+            if (!it->second->getShortcut().empty())
                 infoStr << " [-" << it->second->getShortcut() << "] ";
             else
                 infoStr << "      ";
-            infoStr << "--" << it->second->getName() << " ";
+            infoStr << "--" << it->second->getName() << ' ';
             if (it->second->getValue().getType() != MT_Type::Bool)
                 infoStr << "ARG ";
@@ -347,5 +347,5 @@
     void CommandLineParser::_parseFile()
     {
-        std::string filename = CommandLineParser::getValue("optionsFile").getString();
+        const std::string& filename = CommandLineParser::getValue("optionsFile").getString();
 
         // look for additional arguments in given file or start.ini as default
Index: /code/branches/presentation2/src/libraries/core/ConfigFileManager.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/ConfigFileManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/ConfigFileManager.cc	(revision 6394)
@@ -99,5 +99,5 @@
             this->value_ = value;
         else
-            this->value_ = "\"" + addSlashes(stripEnclosingQuotes(value)) + "\"";
+            this->value_ = '"' + addSlashes(stripEnclosingQuotes(value)) + '"';
     }
 
@@ -112,8 +112,8 @@
     std::string ConfigFileEntryValue::getFileEntry() const
     {
-        if (this->additionalComment_ == "" || this->additionalComment_.size() == 0)
-            return (this->name_ + "=" + this->value_);
-        else
-            return (this->name_ + "=" + this->value_ + " " + this->additionalComment_);
+        if (this->additionalComment_.empty())
+            return (this->name_ + '=' + this->value_);
+        else
+            return (this->name_ + '=' + this->value_ + " " + this->additionalComment_);
     }
 
@@ -124,8 +124,8 @@
     std::string ConfigFileEntryVectorValue::getFileEntry() const
     {
-        if (this->additionalComment_ == "" || this->additionalComment_.size() == 0)
-            return (this->name_ + "[" + multi_cast<std::string>(this->index_) + "]" + "=" + this->value_);
-        else
-            return (this->name_ + "[" + multi_cast<std::string>(this->index_) + "]=" + this->value_ + " " + this->additionalComment_);
+        if (this->additionalComment_.empty())
+            return (this->name_ + '[' + multi_cast<std::string>(this->index_) + ']' + '=' + this->value_);
+        else
+            return (this->name_ + '[' + multi_cast<std::string>(this->index_) + "]=" + this->value_ + ' ' + this->additionalComment_);
     }
 
@@ -171,8 +171,8 @@
     std::string ConfigFileSection::getFileEntry() const
     {
-        if (this->additionalComment_ == "" || this->additionalComment_.size() == 0)
-            return ("[" + this->name_ + "]");
-        else
-            return ("[" + this->name_ + "] " + this->additionalComment_);
+        if (this->additionalComment_.empty())
+            return ('[' + this->name_ + ']');
+        else
+            return ('[' + this->name_ + "] " + this->additionalComment_);
     }
 
@@ -251,5 +251,5 @@
                 std::getline(file, line);
 
-                std::string temp = getStripped(line);
+                const std::string& temp = getStripped(line);
                 if (!isEmpty(temp) && !isComment(temp))
                 {
@@ -261,5 +261,5 @@
                     {
                         // New section
-                        std::string comment = line.substr(pos2 + 1);
+                        const std::string& comment = line.substr(pos2 + 1);
                         if (isComment(comment))
                             newsection = new ConfigFileSection(line.substr(pos1 + 1, pos2 - pos1 - 1), comment);
@@ -293,5 +293,5 @@
                                 commentposition = getNextCommentPosition(line, commentposition + 1);
                             }
-                            std::string value = "", comment = "";
+                            std::string value, comment;
                             if (commentposition == std::string::npos)
                             {
Index: /code/branches/presentation2/src/libraries/core/ConfigFileManager.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/ConfigFileManager.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/ConfigFileManager.h	(revision 6394)
@@ -89,5 +89,10 @@
     {
         public:
-            inline ConfigFileEntryValue(const std::string& name, const std::string& value = "", bool bString = false, const std::string& additionalComment = "") : name_(name), value_(value), bString_(bString), additionalComment_(additionalComment) {}
+            inline ConfigFileEntryValue(const std::string& name, const std::string& value = "", bool bString = false, const std::string& additionalComment = "")
+                : name_(name)
+                , value_(value)
+                , bString_(bString)
+                , additionalComment_(additionalComment)
+                {}
             inline virtual ~ConfigFileEntryValue() {}
 
@@ -173,5 +178,9 @@
 
         public:
-            inline ConfigFileSection(const std::string& name, const std::string& additionalComment = "") : name_(name), additionalComment_(additionalComment), bUpdated_(false) {}
+            inline ConfigFileSection(const std::string& name, const std::string& additionalComment = "")
+                : name_(name)
+                , additionalComment_(additionalComment)
+                , bUpdated_(false)
+                {}
             ~ConfigFileSection();
 
@@ -244,10 +253,10 @@
                 { this->getSection(section)->setValue(name, value, bString); this->save(); }
             inline std::string getValue(const std::string& section, const std::string& name, const std::string& fallback, bool bString)
-                { std::string output = this->getSection(section)->getValue(name, fallback, bString); this->saveIfUpdated(); return output; }
+                { const std::string& output = this->getSection(section)->getValue(name, fallback, bString); this->saveIfUpdated(); return output; }
 
             inline void setValue(const std::string& section, const std::string& name, unsigned int index, const std::string& value, bool bString)
                 { this->getSection(section)->setValue(name, index, value, bString); this->save(); }
             inline std::string getValue(const std::string& section, const std::string& name, unsigned int index, const std::string& fallback, bool bString)
-                { std::string output = this->getSection(section)->getValue(name, index, fallback, bString); this->saveIfUpdated(); return output; }
+                { const std::string& output = this->getSection(section)->getValue(name, index, fallback, bString); this->saveIfUpdated(); return output; }
 
             inline void deleteVectorEntries(const std::string& section, const std::string& name, unsigned int startindex = 0)
Index: /code/branches/presentation2/src/libraries/core/ConsoleCommandCompilation.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/ConsoleCommandCompilation.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/ConsoleCommandCompilation.cc	(revision 6394)
@@ -35,4 +35,5 @@
 #include "util/Debug.h"
 #include "util/ExprParser.h"
+#include "util/StringUtils.h"
 #include "ConsoleCommand.h"
 
@@ -142,5 +143,5 @@
         }
 
-        std::string output = "";
+        std::string output;
         while (file.good() && !file.eof())
         {
@@ -166,7 +167,7 @@
                 COUT(3) << "Greetings from the restaurant at the end of the universe." << std::endl;
             }
-            if (expr.getRemains() != "")
+            if (!expr.getRemains().empty())
             {
-                COUT(2) << "Warning: Expression could not be parsed to the end! Remains: '" << expr.getRemains() << "'" << std::endl;
+                COUT(2) << "Warning: Expression could not be parsed to the end! Remains: '" << expr.getRemains() << '\'' << std::endl;
             }
             return static_cast<float>(expr.getResult());
Index: /code/branches/presentation2/src/libraries/core/DynLib.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/DynLib.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/DynLib.cc	(revision 6394)
@@ -70,5 +70,5 @@
         COUT(2) << "Loading module " << mName << std::endl;
 
-        std::string name = mName;
+        const std::string& name = mName;
 #ifdef ORXONOX_PLATFORM_LINUX
         // dlopen() does not add .so to the filename, like windows does for .dll
@@ -132,5 +132,5 @@
         return std::string(mac_errorBundle());
 #else
-        return std::string("");
+        return "";
 #endif
     }
Index: /code/branches/presentation2/src/libraries/core/Event.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Event.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Event.cc	(revision 6394)
@@ -53,5 +53,5 @@
         if (this->bProcessingEvent_)
         {
-            COUT(2) << "Warning: Detected Event loop in section \"" << event.statename_ << "\" of object \"" << object->getName() << "\" and fired by \"" << event.originator_->getName() << "\"" << std::endl;
+            COUT(2) << "Warning: Detected Event loop in section \"" << event.statename_ << "\" of object \"" << object->getName() << "\" and fired by \"" << event.originator_->getName() << '"' << std::endl;
             return;
         }
Index: /code/branches/presentation2/src/libraries/core/EventIncludes.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/EventIncludes.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/EventIncludes.h	(revision 6394)
@@ -66,6 +66,6 @@
 
 #define XMLPortEventStateIntern(name, classname, statename, xmlelement, mode) \
-    static orxonox::ExecutorMember<classname>* xmlsetfunctor##name = (orxonox::ExecutorMember<classname>*)&orxonox::createExecutor(orxonox::createFunctor(&classname::addEventSource), std::string( #classname ) + "::" + "addEventSource" + "(" + statename + ")")->setDefaultValue(1, statename); \
-    static orxonox::ExecutorMember<classname>* xmlgetfunctor##name = (orxonox::ExecutorMember<classname>*)&orxonox::createExecutor(orxonox::createFunctor(&classname::getEventSource), std::string( #classname ) + "::" + "getEventSource" + "(" + statename + ")")->setDefaultValue(1, statename); \
+    static orxonox::ExecutorMember<classname>* xmlsetfunctor##name = (orxonox::ExecutorMember<classname>*)&orxonox::createExecutor(orxonox::createFunctor(&classname::addEventSource), std::string( #classname ) + "::" + "addEventSource" + '(' + statename + ')')->setDefaultValue(1, statename); \
+    static orxonox::ExecutorMember<classname>* xmlgetfunctor##name = (orxonox::ExecutorMember<classname>*)&orxonox::createExecutor(orxonox::createFunctor(&classname::getEventSource), std::string( #classname ) + "::" + "getEventSource" + '(' + statename + ')')->setDefaultValue(1, statename); \
     XMLPortObjectGeneric(xmlport##name, classname, orxonox::BaseObject, statename, xmlsetfunctor##name, xmlgetfunctor##name, xmlelement, mode, false, true)
 
Index: /code/branches/presentation2/src/libraries/core/Executor.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Executor.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Executor.cc	(revision 6394)
@@ -73,6 +73,5 @@
         {
             // only one param: check if there are params given, otherwise try to use default values
-            std::string temp = getStripped(params);
-            if ((temp != "") && (temp.size() != 0))
+            if (!getStripped(params).empty())
             {
                 param[0] = params;
Index: /code/branches/presentation2/src/libraries/core/Executor.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/Executor.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Executor.h	(revision 6394)
@@ -63,6 +63,6 @@
     else if (paramCount == 1) \
     { \
-        std::string temp = getStripped(params); \
-        if ((temp != "") && (temp.size() != 0)) \
+        const std::string& temp = getStripped(params); \
+        if (!temp.empty()) \
         { \
             COUT(5) << "Calling Executor " << this->name_ << " through parser with one parameter, using whole string: " << params << std::endl; \
@@ -187,5 +187,5 @@
                 { return this->functor_->getTypenameReturnvalue(); }
 
-            inline void setName(const std::string name)
+            inline void setName(const std::string& name)
                 { this->name_ = name; }
             inline const std::string& getName() const
Index: /code/branches/presentation2/src/libraries/core/Functor.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/Functor.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Functor.h	(revision 6394)
@@ -35,5 +35,4 @@
 #include "util/Debug.h"
 #include "util/MultiType.h"
-#include "util/StringUtils.h"
 
 namespace orxonox
Index: /code/branches/presentation2/src/libraries/core/GraphicsManager.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/GraphicsManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/GraphicsManager.cc	(revision 6394)
@@ -208,5 +208,5 @@
                 shared_array<char> data(new char[output.str().size()]);
                 // Debug optimisations
-                const std::string outputStr = output.str();
+                const std::string& outputStr = output.str();
                 char* rawData = data.get();
                 for (unsigned i = 0; i < outputStr.size(); ++i)
@@ -238,10 +238,10 @@
         COUT(3) << "Setting up Ogre..." << std::endl;
 
-        if (ogreConfigFile_ == "")
+        if (ogreConfigFile_.empty())
         {
             COUT(2) << "Warning: Ogre config file set to \"\". Defaulting to config.cfg" << std::endl;
             ModifyConfigValue(ogreConfigFile_, tset, "config.cfg");
         }
-        if (ogreLogFile_ == "")
+        if (ogreLogFile_.empty())
         {
             COUT(2) << "Warning: Ogre log file set to \"\". Defaulting to ogre.log" << std::endl;
@@ -285,6 +285,6 @@
     {
         // just to make sure the next statement doesn't segfault
-        if (ogrePluginsDirectory_ == "")
-            ogrePluginsDirectory_ = ".";
+        if (ogrePluginsDirectory_.empty())
+            ogrePluginsDirectory_ = '.';
 
         boost::filesystem::path folder(ogrePluginsDirectory_);
Index: /code/branches/presentation2/src/libraries/core/IOConsole.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/IOConsole.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/IOConsole.cc	(revision 6394)
@@ -307,5 +307,5 @@
         this->cout_ << "\033[u";
         if (this->buffer_->getCursorPosition() > 0)
-            this->cout_ << "\033[" << this->buffer_->getCursorPosition() << "C";
+            this->cout_ << "\033[" << this->buffer_->getCursorPosition() << 'C';
     }
 
Index: /code/branches/presentation2/src/libraries/core/IRC.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/IRC.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/IRC.cc	(revision 6394)
@@ -33,4 +33,5 @@
 #include "util/Convert.h"
 #include "util/Exception.h"
+#include "util/StringUtils.h"
 #include "ConsoleCommand.h"
 #include "CoreIncludes.h"
@@ -103,5 +104,5 @@
     void IRC::say(const std::string& message)
     {
-        if (IRC::eval("irk::say $conn #orxonox {" + message + "}"))
+        if (IRC::eval("irk::say $conn #orxonox {" + message + '}'))
             IRC::tcl_say(Tcl::object(), Tcl::object(IRC::getInstance().nickname_), Tcl::object(message));
     }
@@ -109,5 +110,5 @@
     void IRC::msg(const std::string& channel, const std::string& message)
     {
-        if (IRC::eval("irk::say $conn " + channel + " {" + message + "}"))
+        if (IRC::eval("irk::say $conn " + channel + " {" + message + '}'))
             IRC::tcl_privmsg(Tcl::object(channel), Tcl::object(IRC::getInstance().nickname_), Tcl::object(message));
     }
@@ -131,5 +132,5 @@
     void IRC::tcl_action(Tcl::object const &channel, Tcl::object const &nick, Tcl::object const &args)
     {
-        COUT(0) << "IRC> * " << nick.get() << " " << stripEnclosingBraces(args.get()) << std::endl;
+        COUT(0) << "IRC> * " << nick.get() << ' ' << stripEnclosingBraces(args.get()) << std::endl;
     }
 
Index: /code/branches/presentation2/src/libraries/core/Identifier.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Identifier.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Identifier.cc	(revision 6394)
@@ -410,5 +410,5 @@
         if (it != this->configValues_.end())
         {
-            COUT(2) << "Warning: Overwriting config-value with name " << varname << " in class " << this->getName() << "." << std::endl;
+            COUT(2) << "Warning: Overwriting config-value with name " << varname << " in class " << this->getName() << '.' << std::endl;
             delete (it->second);
         }
@@ -458,5 +458,5 @@
         if (it != this->consoleCommands_.end())
         {
-            COUT(2) << "Warning: Overwriting console-command with name " << command->getName() << " in class " << this->getName() << "." << std::endl;
+            COUT(2) << "Warning: Overwriting console-command with name " << command->getName() << " in class " << this->getName() << '.' << std::endl;
             delete (it->second);
         }
@@ -524,5 +524,5 @@
         if (it != this->xmlportParamContainers_.end())
         {
-            COUT(2) << "Warning: Overwriting XMLPortParamContainer in class " << this->getName() << "." << std::endl;
+            COUT(2) << "Warning: Overwriting XMLPortParamContainer in class " << this->getName() << '.' << std::endl;
             delete (it->second);
         }
@@ -555,5 +555,5 @@
         if (it != this->xmlportObjectContainers_.end())
         {
-            COUT(2) << "Warning: Overwriting XMLPortObjectContainer in class " << this->getName() << "." << std::endl;
+            COUT(2) << "Warning: Overwriting XMLPortObjectContainer in class " << this->getName() << '.' << std::endl;
             delete (it->second);
         }
@@ -573,5 +573,5 @@
         {
             if (it != list.begin())
-                out << " ";
+                out << ' ';
             out << (*it)->getName();
         }
Index: /code/branches/presentation2/src/libraries/core/Identifier.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/Identifier.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Identifier.h	(revision 6394)
@@ -411,5 +411,5 @@
     {
         // Get the name of the class
-        std::string name = typeid(T).name();
+        const std::string& name = typeid(T).name();
 
         // create a new identifier anyway. Will be deleted in Identifier::getIdentifier if not used.
Index: /code/branches/presentation2/src/libraries/core/Language.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Language.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Language.cc	(revision 6394)
@@ -62,5 +62,5 @@
     {
         // Check if the translation is more than just an empty string
-        if ((localisation != "") && (localisation.size() > 0))
+        if (!localisation.empty())
         {
             this->localisedEntry_ = localisation;
@@ -130,5 +130,5 @@
         }
 
-        COUT(2) << "Warning: Language entry " << label << " is duplicate in " << getFilename(this->defaultLanguage_) << "!" << std::endl;
+        COUT(2) << "Warning: Language entry " << label << " is duplicate in " << getFilename(this->defaultLanguage_) << '!' << std::endl;
         return it->second;
     }
@@ -199,5 +199,5 @@
         COUT(4) << "Read default language file." << std::endl;
 
-        std::string filepath = PathConfig::getConfigPathString() + getFilename(this->defaultLanguage_);
+        const std::string& filepath = PathConfig::getConfigPathString() + getFilename(this->defaultLanguage_);
 
         // This creates the file if it's not existing
@@ -224,5 +224,5 @@
 
             // Check if the line is empty
-            if ((lineString != "") && (lineString.size() > 0))
+            if (!lineString.empty())
             {
                 size_t pos = lineString.find('=');
@@ -248,5 +248,5 @@
         COUT(4) << "Read translated language file (" << Core::getInstance().getLanguage() << ")." << std::endl;
 
-        std::string filepath = PathConfig::getConfigPathString() + getFilename(Core::getInstance().getLanguage());
+        const std::string& filepath = PathConfig::getConfigPathString() + getFilename(Core::getInstance().getLanguage());
 
         // Open the file
@@ -259,5 +259,5 @@
             COUT(1) << "Error: Couldn't open file " << getFilename(Core::getInstance().getLanguage()) << " to read the translated language entries!" << std::endl;
             Core::getInstance().resetLanguage();
-            COUT(3) << "Info: Reset language to " << this->defaultLanguage_ << "." << std::endl;
+            COUT(3) << "Info: Reset language to " << this->defaultLanguage_ << '.' << std::endl;
             return;
         }
@@ -270,5 +270,5 @@
 
             // Check if the line is empty
-            if ((lineString != "") && (lineString.size() > 0))
+            if (!lineString.empty())
             {
                 size_t pos = lineString.find('=');
@@ -302,5 +302,5 @@
         COUT(4) << "Language: Write default language file." << std::endl;
 
-        std::string filepath = PathConfig::getConfigPathString() + getFilename(this->defaultLanguage_);
+        const std::string& filepath = PathConfig::getConfigPathString() + getFilename(this->defaultLanguage_);
 
         // Open the file
@@ -318,5 +318,5 @@
         for (std::map<std::string, LanguageEntry*>::const_iterator it = this->languageEntries_.begin(); it != this->languageEntries_.end(); ++it)
         {
-            file << (*it).second->getLabel() << "=" << (*it).second->getDefault() << std::endl;
+            file << (*it).second->getLabel() << '=' << (*it).second->getDefault() << std::endl;
         }
 
Index: /code/branches/presentation2/src/libraries/core/Loader.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Loader.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Loader.cc	(revision 6394)
@@ -165,5 +165,5 @@
             rootNamespace->XMLPort(rootElement, XMLPort::LoadObject);
 
-            COUT(0) << "Finished loading " << file->getFilename() << "." << std::endl;
+            COUT(0) << "Finished loading " << file->getFilename() << '.' << std::endl;
 
             COUT(4) << "Namespace-tree:" << std::endl << rootNamespace->toString("  ") << std::endl;
@@ -174,5 +174,5 @@
         {
             COUT(1) << std::endl;
-            COUT(1) << "An XML-error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
+            COUT(1) << "An XML-error occurred in Loader.cc while loading " << file->getFilename() << ':' << std::endl;
             COUT(1) << ex.what() << std::endl;
             COUT(1) << "Loading aborted." << std::endl;
@@ -182,5 +182,5 @@
         {
             COUT(1) << std::endl;
-            COUT(1) << "A loading-error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
+            COUT(1) << "A loading-error occurred in Loader.cc while loading " << file->getFilename() << ':' << std::endl;
             COUT(1) << ex.what() << std::endl;
             COUT(1) << "Loading aborted." << std::endl;
@@ -190,5 +190,5 @@
         {
             COUT(1) << std::endl;
-            COUT(1) << "An error occurred in Loader.cc while loading " << file->getFilename() << ":" << std::endl;
+            COUT(1) << "An error occurred in Loader.cc while loading " << file->getFilename() << ':' << std::endl;
             COUT(1) << Exception::handleMessage() << std::endl;
             COUT(1) << "Loading aborted." << std::endl;
@@ -218,5 +218,5 @@
     std::string Loader::replaceLuaTags(const std::string& text)
     {
-        // chreate map with all Lua tags
+        // create map with all Lua tags
         std::map<size_t, bool> luaTags;
         {
@@ -300,5 +300,5 @@
                 {
                     // count ['='[ and ]'='] and replace tags with print([[ and ]])
-                    std::string temp = text.substr(start, end - start);
+                    const std::string& temp = text.substr(start, end - start);
                     {
                     size_t pos = 0;
@@ -345,10 +345,10 @@
                         }
                     }
-                    std::string equalSigns = "";
+                    std::string equalSigns;
                     for(unsigned int i = 0; i < equalSignCounter; i++)
                     {
-                        equalSigns += "=";
+                        equalSigns += '=';
                     }
-                    output << "print([" + equalSigns + "[" + temp + "]" + equalSigns +"])";
+                    output << "print([" + equalSigns + '[' + temp + ']' + equalSigns +"])";
                     start = end + 5;
                 }
Index: /code/branches/presentation2/src/libraries/core/Namespace.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Namespace.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Namespace.cc	(revision 6394)
@@ -173,5 +173,5 @@
         {
             if (i > 0)
-                output += "\n";
+                output += '\n';
 
             output += (*it)->toString(indentation);
Index: /code/branches/presentation2/src/libraries/core/NamespaceNode.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/NamespaceNode.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/NamespaceNode.cc	(revision 6394)
@@ -50,5 +50,5 @@
         std::set<NamespaceNode*> nodes;
 
-        if ((name.size() == 0) || (name == ""))
+        if (name.empty())
         {
             nodes.insert(this);
@@ -154,8 +154,8 @@
                     output += ", ";
 
-                output += (*it).second->toString();
+                output += it->second->toString();
             }
 
-            output += ")";
+            output += ')';
         }
 
@@ -165,8 +165,8 @@
     std::string NamespaceNode::toString(const std::string& indentation) const
     {
-        std::string output = (indentation + this->name_ + "\n");
+        std::string output = (indentation + this->name_ + '\n');
 
         for (std::map<std::string, NamespaceNode*>::const_iterator it = this->subnodes_.begin(); it != this->subnodes_.end(); ++it)
-            output += (*it).second->toString(indentation + "  ");
+            output += it->second->toString(indentation + "  ");
 
         return output;
Index: /code/branches/presentation2/src/libraries/core/OrxonoxClass.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/OrxonoxClass.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/OrxonoxClass.cc	(revision 6394)
@@ -57,5 +57,5 @@
     {
 //        if (!this->requestedDestruction_)
-//            COUT(2) << "Warning: Destroyed object without destroy() (" << this->getIdentifier()->getName() << ")" << std::endl;
+//            COUT(2) << "Warning: Destroyed object without destroy() (" << this->getIdentifier()->getName() << ')' << std::endl;
 
         assert(this->referenceCount_ <= 0);
Index: /code/branches/presentation2/src/libraries/core/PathConfig.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/PathConfig.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/PathConfig.cc	(revision 6394)
@@ -226,5 +226,5 @@
         if (!CommandLineParser::getArgument("writingPathSuffix")->hasDefaultValue())
         {
-            std::string directory(CommandLineParser::getValue("writingPathSuffix").getString());
+            const std::string& directory(CommandLineParser::getValue("writingPathSuffix").getString());
             configPath_ = configPath_ / directory;
             logPath_    = logPath_    / directory;
@@ -256,10 +256,10 @@
 
         // We search for helper files with the following extension
-        std::string moduleextension = specialConfig::moduleExtension;
+        const std::string& moduleextension = specialConfig::moduleExtension;
         size_t moduleextensionlength = moduleextension.size();
 
         // Add that path to the PATH variable in case a module depends on another one
-        std::string pathVariable = getenv("PATH");
-        putenv(const_cast<char*>(("PATH=" + pathVariable + ";" + modulePath_.string()).c_str()));
+        std::string pathVariable(getenv("PATH"));
+        putenv(const_cast<char*>(("PATH=" + pathVariable + ';' + modulePath_.string()).c_str()));
 
         // Make sure the path exists, otherwise don't load modules
@@ -273,5 +273,5 @@
         while (file != end)
         {
-            std::string filename = file->BOOST_LEAF_FUNCTION();
+            const std::string& filename = file->BOOST_LEAF_FUNCTION();
 
             // Check if the file ends with the exension in question
@@ -281,5 +281,5 @@
                 {
                     // We've found a helper file
-                    std::string library = filename.substr(0, filename.size() - moduleextensionlength);
+                    const std::string& library = filename.substr(0, filename.size() - moduleextensionlength);
                     modulePaths.push_back((modulePath_ / library).file_string());
                 }
Index: /code/branches/presentation2/src/libraries/core/Shell.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Shell.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Shell.cc	(revision 6394)
@@ -226,5 +226,5 @@
     }
 
-    std::string Shell::getFromHistory() const
+    const std::string& Shell::getFromHistory() const
     {
         unsigned int index = mod(static_cast<int>(this->historyOffset_) - static_cast<int>(this->historyPosition_), this->maxHistoryLength_);
@@ -232,5 +232,5 @@
             return this->commandHistory_[index];
         else
-            return "";
+            return BLANKSTRING;
     }
 
@@ -251,5 +251,5 @@
             newline = (!eof && !fail);
 
-            if (!newline && output == "")
+            if (!newline && output.empty())
                 break;
 
@@ -400,5 +400,5 @@
             return;
         unsigned int cursorPosition = this->getCursorPosition();
-        std::string input_str(this->getInput().substr(0, cursorPosition)); // only search for the expression from the beginning of the inputline until the cursor position
+        const std::string& input_str(this->getInput().substr(0, cursorPosition)); // only search for the expression from the beginning of the inputline until the cursor position
         for (unsigned int newPos = this->historyPosition_ + 1; newPos <= this->historyOffset_; newPos++)
         {
@@ -418,5 +418,5 @@
             return;
         unsigned int cursorPosition = this->getCursorPosition();
-        std::string input_str(this->getInput().substr(0, cursorPosition)); // only search for the expression from the beginning
+        const std::string& input_str(this->getInput().substr(0, cursorPosition)); // only search for the expression from the beginning
         for (unsigned int newPos = this->historyPosition_ - 1; newPos > 0; newPos--)
         {
Index: /code/branches/presentation2/src/libraries/core/Shell.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/Shell.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Shell.h	(revision 6394)
@@ -96,5 +96,5 @@
                 { return this->inputBuffer_->getCursorPosition(); }
 
-            inline std::string getInput() const
+            inline const std::string& getInput() const
                 { return this->inputBuffer_->get(); }
 
@@ -118,5 +118,5 @@
 
             void addToHistory(const std::string& command);
-            std::string getFromHistory() const;
+            const std::string& getFromHistory() const;
             void clearInput();
             // OutputListener
Index: /code/branches/presentation2/src/libraries/core/SubclassIdentifier.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/SubclassIdentifier.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/SubclassIdentifier.h	(revision 6394)
@@ -98,5 +98,5 @@
                     if (identifier)
                     {
-                        COUT(1) << "Error: Class " << identifier->getName() << " is not a " << ClassIdentifier<T>::getIdentifier()->getName() << "!" << std::endl;
+                        COUT(1) << "Error: Class " << identifier->getName() << " is not a " << ClassIdentifier<T>::getIdentifier()->getName() << '!' << std::endl;
                         COUT(1) << "Error: SubclassIdentifier<" << ClassIdentifier<T>::getIdentifier()->getName() << "> = Class(" << identifier->getName() << ") is forbidden." << std::endl;
                     }
@@ -166,5 +166,5 @@
                     {
                         COUT(1) << "An error occurred in SubclassIdentifier (Identifier.h):" << std::endl;
-                        COUT(1) << "Error: Class " << this->identifier_->getName() << " is not a " << ClassIdentifier<T>::getIdentifier()->getName() << "!" << std::endl;
+                        COUT(1) << "Error: Class " << this->identifier_->getName() << " is not a " << ClassIdentifier<T>::getIdentifier()->getName() << '!' << std::endl;
                         COUT(1) << "Error: Couldn't fabricate a new Object." << std::endl;
                     }
Index: /code/branches/presentation2/src/libraries/core/TclBind.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/TclBind.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/TclBind.cc	(revision 6394)
@@ -101,10 +101,10 @@
     {
         Tcl::interpreter* interpreter = new Tcl::interpreter();
-        std::string libpath = TclBind::getTclLibraryPath();
+        const std::string& libpath = TclBind::getTclLibraryPath();
 
         try
         {
-            if (libpath != "")
-                interpreter->eval("set tcl_library \"" + libpath + "\"");
+            if (!libpath.empty())
+                interpreter->eval("set tcl_library \"" + libpath + '"');
 
             Tcl_Init(interpreter->get());
@@ -136,5 +136,5 @@
         COUT(4) << "Tcl_query: " << args.get() << std::endl;
 
-        std::string command = stripEnclosingBraces(args.get());
+        const std::string& command = stripEnclosingBraces(args.get());
 
         if (!CommandExecutor::execute(command, false))
@@ -152,5 +152,5 @@
     {
         COUT(4) << "Tcl_execute: " << args.get() << std::endl;
-        std::string command = stripEnclosingBraces(args.get());
+        const std::string& command = stripEnclosingBraces(args.get());
 
         if (!CommandExecutor::execute(command, false))
@@ -166,6 +166,6 @@
             try
             {
-                std::string output = TclBind::getInstance().interpreter_->eval("uplevel #0 " + tclcode);
-                if (output != "")
+                const std::string& output = TclBind::getInstance().interpreter_->eval("uplevel #0 " + tclcode);
+                if (!output.empty())
                 {
                     COUT(0) << "tcl> " << output << std::endl;
@@ -182,5 +182,5 @@
     }
 
-    void TclBind::bgerror(std::string error)
+    void TclBind::bgerror(const std::string& error)
     {
         COUT(1) << "Tcl background error: " << stripEnclosingBraces(error) << std::endl;
Index: /code/branches/presentation2/src/libraries/core/TclBind.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/TclBind.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/TclBind.h	(revision 6394)
@@ -46,5 +46,5 @@
 
             static std::string tcl(const std::string& tclcode);
-            static void bgerror(std::string error);
+            static void bgerror(const std::string& error);
 
             void setDataPath(const std::string& datapath);
Index: /code/branches/presentation2/src/libraries/core/TclThreadManager.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/TclThreadManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/TclThreadManager.cc	(revision 6394)
@@ -39,4 +39,5 @@
 #include "util/Convert.h"
 #include "util/Exception.h"
+#include "util/StringUtils.h"
 #include "CommandExecutor.h"
 #include "ConsoleCommand.h"
@@ -252,5 +253,5 @@
     void TclThreadManager::initialize(TclInterpreterBundle* bundle)
     {
-        std::string id_string = getConvertedValue<unsigned int, std::string>(bundle->id_);
+        const std::string& id_string = getConvertedValue<unsigned int, std::string>(bundle->id_);
 
         // Initialize the new interpreter
@@ -403,8 +404,8 @@
             {
                 // This query would lead to a deadlock - return with an error
-                TclThreadManager::error("Error: Circular query (" + this->dumpList(source_bundle->queriers_.getList()) + " " + getConvertedValue<unsigned int, std::string>(source_bundle->id_) \
+                TclThreadManager::error("Error: Circular query (" + this->dumpList(source_bundle->queriers_.getList()) + ' ' + getConvertedValue<unsigned int, std::string>(source_bundle->id_) \
                             + " -> " + getConvertedValue<unsigned int, std::string>(target_bundle->id_) \
                             + "), couldn't query Tcl-interpreter with ID " + getConvertedValue<unsigned int, std::string>(target_bundle->id_) \
-                            + " from other interpreter with ID " + getConvertedValue<unsigned int, std::string>(source_bundle->id_) + ".");
+                            + " from other interpreter with ID " + getConvertedValue<unsigned int, std::string>(source_bundle->id_) + '.');
             }
             else
@@ -524,9 +525,9 @@
     std::string TclThreadManager::dumpList(const std::list<unsigned int>& list)
     {
-        std::string output = "";
+        std::string output;
         for (std::list<unsigned int>::const_iterator it = list.begin(); it != list.end(); ++it)
         {
             if (it != list.begin())
-                output += " ";
+                output += ' ';
 
             output += getConvertedValue<unsigned int, std::string>(*it);
@@ -600,5 +601,5 @@
         @param command the Command to execute
     */
-    void tclThread(TclInterpreterBundle* bundle, std::string command)
+    void tclThread(TclInterpreterBundle* bundle, const std::string& command)
     {
         TclThreadManager::debug("TclThread_execute: " + command);
@@ -613,5 +614,5 @@
         @param file The name of the file that should be executed by the non-interactive interpreter.
     */
-    void sourceThread(std::string file)
+    void sourceThread(const std::string& file)
     {
         TclThreadManager::debug("TclThread_source: " + file);
@@ -651,7 +652,7 @@
 
         // Initialize the non-interactive interpreter (like in @ref TclBind::createTclInterpreter but exception safe)
-        std::string libpath = TclBind::getTclLibraryPath();
-        if (libpath != "")
-            TclThreadManager::eval(bundle, "set tcl_library \"" + libpath + "\"", "source");
+        const std::string& libpath = TclBind::getTclLibraryPath();
+        if (!libpath.empty())
+            TclThreadManager::eval(bundle, "set tcl_library \"" + libpath + '"', "source");
         int cc = Tcl_Init(interp);
         TclThreadManager::eval(bundle, "source \"" + TclBind::getInstance().getTclDataPath() + "/init.tcl\"", "source");
Index: /code/branches/presentation2/src/libraries/core/TclThreadManager.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/TclThreadManager.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/TclThreadManager.h	(revision 6394)
@@ -48,6 +48,6 @@
         friend class Singleton<TclThreadManager>;
         friend class TclBind;
-        friend _CoreExport void tclThread(TclInterpreterBundle* bundle, std::string command);
-        friend _CoreExport void sourceThread(std::string file);
+        friend _CoreExport void tclThread(TclInterpreterBundle* bundle, const std::string& command);
+        friend _CoreExport void sourceThread(const std::string& file);
         friend _CoreExport int Tcl_OrxonoxAppInit(Tcl_Interp* interp);
 
@@ -95,6 +95,6 @@
     };
 
-    _CoreExport void tclThread(TclInterpreterBundle* bundle, std::string command);
-    _CoreExport void sourceThread(std::string file);
+    _CoreExport void tclThread(TclInterpreterBundle* bundle, const std::string& command);
+    _CoreExport void sourceThread(const std::string& file);
     _CoreExport int Tcl_OrxonoxAppInit(Tcl_Interp* interp);
 }
Index: /code/branches/presentation2/src/libraries/core/Template.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/Template.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Template.cc	(revision 6394)
@@ -79,5 +79,5 @@
         SUPER(Template, changedName);
 
-        if (this->getName() != "")
+        if (!this->getName().empty())
         {
             std::map<std::string, Template*>::iterator it;
Index: /code/branches/presentation2/src/libraries/core/Template.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/Template.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/Template.h	(revision 6394)
@@ -48,5 +48,5 @@
 
             inline void setLink(const std::string& link)
-                { this->link_ = link; this->bIsLink_ = (link != ""); }
+                { this->link_ = link; this->bIsLink_ = !link.empty(); }
             inline const std::string& getLink() const
                 { return this->link_; }
Index: /code/branches/presentation2/src/libraries/core/XMLPort.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/XMLPort.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/XMLPort.h	(revision 6394)
@@ -51,4 +51,5 @@
 #include "util/MultiType.h"
 #include "util/OrxAssert.h"
+#include "util/StringUtils.h"
 #include "Identifier.h"
 #include "Executor.h"
@@ -316,5 +317,5 @@
                 { return this->paramname_; }
 
-            virtual XMLPortParamContainer& description(const std::string description) = 0;
+            virtual XMLPortParamContainer& description(const std::string& description) = 0;
             virtual const std::string& getDescription() = 0;
 
@@ -344,5 +345,5 @@
 
         public:
-            XMLPortClassParamContainer(const std::string paramname, Identifier* identifier, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor)
+            XMLPortClassParamContainer(const std::string& paramname, Identifier* identifier, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor)
             {
                 this->paramname_ = paramname;
@@ -385,5 +386,5 @@
                         }
                         std::map<std::string, std::string>::const_iterator it = this->owner_->xmlAttributes_.find(getLowercase(this->paramname_));
-                        std::string attributeValue("");
+                        std::string attributeValue;
                         if (it != this->owner_->xmlAttributes_.end())
                             attributeValue = it->second;
@@ -407,5 +408,5 @@
                     {
                         COUT(1) << std::endl;
-                        COUT(1) << "An error occurred in XMLPort.h while loading attribute '" << this->paramname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << this->owner_->getName() << ") in " << this->owner_->getFilename() << ":" << std::endl;
+                        COUT(1) << "An error occurred in XMLPort.h while loading attribute '" << this->paramname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << this->owner_->getName() << ") in " << this->owner_->getFilename() << ':' << std::endl;
                         COUT(1) << ex.what() << std::endl;
                     }
@@ -435,5 +436,5 @@
             }
 
-            virtual XMLPortParamContainer& description(const std::string description)
+            virtual XMLPortParamContainer& description(const std::string& description)
                 { this->loadexecutor_->setDescription(description); return (*this); }
             virtual const std::string& getDescription()
@@ -497,5 +498,5 @@
                 { return this->sectionname_; }
 
-            virtual XMLPortObjectContainer& description(const std::string description) = 0;
+            virtual XMLPortObjectContainer& description(const std::string& description) = 0;
             virtual const std::string& getDescription() = 0;
 
@@ -513,5 +514,5 @@
     {
         public:
-            XMLPortClassObjectContainer(const std::string sectionname, Identifier* identifier, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor, bool bApplyLoaderMask, bool bLoadBefore)
+            XMLPortClassObjectContainer(const std::string& sectionname, Identifier* identifier, ExecutorMember<T>* loadexecutor, ExecutorMember<T>* saveexecutor, bool bApplyLoaderMask, bool bLoadBefore)
             {
                 this->sectionname_ = sectionname;
@@ -538,5 +539,5 @@
                     {
                         Element* xmlsubelement;
-                        if ((this->sectionname_ != "") && (this->sectionname_.size() > 0))
+                        if (!this->sectionname_.empty())
                             xmlsubelement = xmlelement.FirstChildElement(this->sectionname_, false);
                         else
@@ -570,9 +571,9 @@
                                                     {
                                                         newObject->XMLPort(*child, XMLPort::LoadObject);
-                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << static_cast<BaseObject*>(object)->getName() << ")" << std::endl;
+                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << static_cast<BaseObject*>(object)->getName() << ')' << std::endl;
                                                     }
                                                     else
                                                     {
-                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << static_cast<BaseObject*>(object)->getName() << ")" << std::endl;
+                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << static_cast<BaseObject*>(object)->getName() << ')' << std::endl;
                                                     }
 
@@ -609,5 +610,5 @@
                                 else
                                 {
-                                    if (this->sectionname_ != "")
+                                    if (!this->sectionname_.empty())
                                     {
                                         COUT(2) << object->getLoaderIndentation() << "Warning: '" << child->Value() << "' is not a valid classname." << std::endl;
@@ -624,5 +625,5 @@
                     {
                         COUT(1) << std::endl;
-                        COUT(1) << "An error occurred in XMLPort.h while loading a '" << ClassIdentifier<O>::getIdentifier()->getName() << "' in '" << this->sectionname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << object->getName() << ") in " << object->getFilename() << ":" << std::endl;
+                        COUT(1) << "An error occurred in XMLPort.h while loading a '" << ClassIdentifier<O>::getIdentifier()->getName() << "' in '" << this->sectionname_ << "' of '" << this->identifier_->getName() << "' (objectname: " << object->getName() << ") in " << object->getFilename() << ':' << std::endl;
                         COUT(1) << ex.what() << std::endl;
                     }
@@ -635,5 +636,5 @@
             }
 
-            virtual XMLPortObjectContainer& description(const std::string description)
+            virtual XMLPortObjectContainer& description(const std::string& description)
                 { this->loadexecutor_->setDescription(description); return (*this); }
             virtual const std::string& getDescription()
Index: /code/branches/presentation2/src/libraries/core/input/Button.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/Button.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/Button.cc	(revision 6394)
@@ -116,5 +116,5 @@
         for (unsigned int iCommand = 0; iCommand < commandStrings.size(); iCommand++)
         {
-            if (commandStrings[iCommand] != "")
+            if (!commandStrings[iCommand].empty())
             {
                 SubString tokens(commandStrings[iCommand], " ", SubString::WhiteSpaces, false,
@@ -123,9 +123,9 @@
                 KeybindMode::Value mode = KeybindMode::None;
                 float paramModifier = 1.0f;
-                std::string commandStr = "";
+                std::string commandStr;
 
                 for (unsigned int iToken = 0; iToken < tokens.size(); ++iToken)
                 {
-                    std::string token = getLowercase(tokens[iToken]);
+                    const std::string& token = getLowercase(tokens[iToken]);
 
                     if (token == "onpress")
@@ -159,9 +159,9 @@
                         // we interpret everything from here as a command string
                         while (iToken != tokens.size())
-                            commandStr += tokens[iToken++] + " ";
-                    }
-                }
-
-                if (commandStr == "")
+                            commandStr += tokens[iToken++] + ' ';
+                    }
+                }
+
+                if (commandStr.empty())
                 {
                     parseError("No command string given.", false);
@@ -242,5 +242,5 @@
     }
 
-    inline void Button::parseError(std::string message, bool serious)
+    inline void Button::parseError(const std::string& message, bool serious)
     {
         if (serious)
Index: /code/branches/presentation2/src/libraries/core/input/Button.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/Button.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/Button.h	(revision 6394)
@@ -76,5 +76,5 @@
 
     private:
-        void parseError(std::string message, bool serious);
+        void parseError(const std::string& message, bool serious);
     };
 
Index: /code/branches/presentation2/src/libraries/core/input/InputBuffer.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/InputBuffer.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/InputBuffer.cc	(revision 6394)
@@ -39,5 +39,4 @@
         RegisterRootObject(InputBuffer);
 
-        this->buffer_ = "";
         this->cursor_ = 0;
         this->maxLength_ = 1024;
@@ -62,5 +61,4 @@
         this->maxLength_ = 1024;
         this->allowedChars_ = allowedChars;
-        this->buffer_ = "";
         this->cursor_ = 0;
 
@@ -138,5 +136,5 @@
     void InputBuffer::clear(bool update)
     {
-        this->buffer_ = "";
+        this->buffer_.clear();
         this->cursor_ = 0;
 
@@ -188,5 +186,5 @@
     bool InputBuffer::charIsAllowed(const char& input)
     {
-        if (this->allowedChars_ == "")
+        if (this->allowedChars_.empty())
             return true;
         else
Index: /code/branches/presentation2/src/libraries/core/input/InputManager.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/InputManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/InputManager.cc	(revision 6394)
@@ -297,5 +297,5 @@
             if (device == NULL)
                 continue;
-            std::string className = device->getClassName();
+            const std::string& className = device->getClassName();
             try
             {
@@ -579,5 +579,5 @@
     InputState* InputManager::createInputState(const std::string& name, bool bAlwaysGetsInput, bool bTransparent, InputStatePriority priority)
     {
-        if (name == "")
+        if (name.empty())
             return 0;
         if (statesByName_.find(name) == statesByName_.end())
Index: /code/branches/presentation2/src/libraries/core/input/JoyStick.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/JoyStick.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/JoyStick.cc	(revision 6394)
@@ -33,4 +33,5 @@
 #include <boost/foreach.hpp>
 
+#include "util/StringUtils.h"
 #include "core/ConfigFileManager.h"
 #include "core/ConfigValueIncludes.h"
@@ -61,9 +62,9 @@
             std::string name = oisDevice_->vendor();
             replaceCharacters(name, ' ', '_');
-            deviceName_ = name + "_";
-        }
-        deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Button))  + "_";
-        deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Axis))    + "_";
-        deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Slider))  + "_";
+            deviceName_ = name + '_';
+        }
+        deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Button))  + '_';
+        deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Axis))    + '_';
+        deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Slider))  + '_';
         deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_POV));
         //deviceName_ += multi_cast<std::string>(oisDevice_->getNumberOfComponents(OIS::OIS_Vector3));
@@ -74,5 +75,5 @@
             {
                 // Make the ID unique for this execution time.
-                deviceName_ += "_" + multi_cast<std::string>(this->getDeviceName());
+                deviceName_ += '_' + multi_cast<std::string>(this->getDeviceName());
                 break;
             }
Index: /code/branches/presentation2/src/libraries/core/input/KeyBinder.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/KeyBinder.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/KeyBinder.cc	(revision 6394)
@@ -61,9 +61,9 @@
         for (unsigned int i = 0; i < KeyCode::numberOfKeys; i++)
         {
-            std::string keyname = KeyCode::ByString[i];
+            const std::string& keyname = KeyCode::ByString[i];
             if (!keyname.empty())
                 keys_[i].name_ = std::string("Key") + keyname;
             else
-                keys_[i].name_ = "";
+                keys_[i].name_.clear();
             keys_[i].paramCommandBuffer_ = &paramCommandBuffer_;
             keys_[i].groupName_ = "Keys";
@@ -188,8 +188,8 @@
         this->joyStickButtons_.resize(joySticks_.size());
 
-        // reinitialise all joy stick binings (doesn't overwrite the old ones)
+        // reinitialise all joy stick bindings (doesn't overwrite the old ones)
         for (unsigned int iDev = 0; iDev < joySticks_.size(); iDev++)
         {
-            std::string deviceName = joySticks_[iDev]->getDeviceName();
+            const std::string& deviceName = joySticks_[iDev]->getDeviceName();
             // joy stick buttons
             for (unsigned int i = 0; i < JoyStickButtonCode::numberOfButtons; i++)
@@ -221,10 +221,10 @@
         for (unsigned int i = 0; i < KeyCode::numberOfKeys; i++)
             if (!keys_[i].name_.empty())
-                allButtons_[keys_[i].groupName_ + "." + keys_[i].name_] = keys_ + i;
+                allButtons_[keys_[i].groupName_ + '.' + keys_[i].name_] = keys_ + i;
         for (unsigned int i = 0; i < numberOfMouseButtons_; i++)
-            allButtons_[mouseButtons_[i].groupName_ + "." + mouseButtons_[i].name_] = mouseButtons_ + i;
+            allButtons_[mouseButtons_[i].groupName_ + '.' + mouseButtons_[i].name_] = mouseButtons_ + i;
         for (unsigned int i = 0; i < MouseAxisCode::numberOfAxes * 2; i++)
         {
-            allButtons_[mouseAxes_[i].groupName_ + "." + mouseAxes_[i].name_] = mouseAxes_ + i;
+            allButtons_[mouseAxes_[i].groupName_ + '.' + mouseAxes_[i].name_] = mouseAxes_ + i;
             allHalfAxes_.push_back(mouseAxes_ + i);
         }
@@ -232,8 +232,8 @@
         {
             for (unsigned int i = 0; i < JoyStickButtonCode::numberOfButtons; i++)
-                allButtons_[(*joyStickButtons_[iDev])[i].groupName_ + "." + (*joyStickButtons_[iDev])[i].name_] = &((*joyStickButtons_[iDev])[i]);
+                allButtons_[(*joyStickButtons_[iDev])[i].groupName_ + '.' + (*joyStickButtons_[iDev])[i].name_] = &((*joyStickButtons_[iDev])[i]);
             for (unsigned int i = 0; i < JoyStickAxisCode::numberOfAxes * 2; i++)
             {
-                allButtons_[(*joyStickAxes_[iDev])[i].groupName_ + "." + (*joyStickAxes_[iDev])[i].name_] = &((*joyStickAxes_[iDev])[i]);
+                allButtons_[(*joyStickAxes_[iDev])[i].groupName_ + '.' + (*joyStickAxes_[iDev])[i].name_] = &((*joyStickAxes_[iDev])[i]);
                 allHalfAxes_.push_back(&((*joyStickAxes_[iDev])[i]));
             }
@@ -284,8 +284,8 @@
     }
 
-     void KeyBinder::addButtonToCommand(std::string command, Button* button)
+     void KeyBinder::addButtonToCommand(const std::string& command, Button* button)
      {
         std::ostringstream stream;
-        stream << button->groupName_  << "." << button->name_;
+        stream << button->groupName_  << '.' << button->name_;
 
         std::vector<std::string>& oldKeynames = this->allCommands_[button->bindingString_];
@@ -296,5 +296,5 @@
         }
 
-        if(command != "")
+        if (!command.empty())
         {
             std::vector<std::string>& keynames = this->allCommands_[command];
@@ -310,5 +310,5 @@
         Return the first key name for a specific command
     */
-    std::string KeyBinder::getBinding(std::string commandName)
+    const std::string& KeyBinder::getBinding(const std::string& commandName)
     {
         if( this->allCommands_.find(commandName) != this->allCommands_.end())
@@ -318,5 +318,5 @@
         }
 
-        return "";
+        return BLANKSTRING;
     }
 
@@ -329,5 +329,5 @@
         The index at which the key name is returned for.
     */
-    std::string KeyBinder::getBinding(std::string commandName, unsigned int index)
+    const std::string& KeyBinder::getBinding(const std::string& commandName, unsigned int index)
     {
         if( this->allCommands_.find(commandName) != this->allCommands_.end())
@@ -339,8 +339,8 @@
             }
 
-            return "";
-        }
-
-        return "";
+            return BLANKSTRING;
+        }
+
+        return BLANKSTRING;
     }
 
@@ -351,5 +351,5 @@
         The command.
     */
-    unsigned int KeyBinder::getNumberOfBindings(std::string commandName)
+    unsigned int KeyBinder::getNumberOfBindings(const std::string& commandName)
     {
         if( this->allCommands_.find(commandName) != this->allCommands_.end())
Index: /code/branches/presentation2/src/libraries/core/input/KeyBinder.h
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/KeyBinder.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/KeyBinder.h	(revision 6394)
@@ -66,7 +66,7 @@
         void clearBindings();
         bool setBinding(const std::string& binding, const std::string& name, bool bTemporary = false);
-        std::string getBinding(std::string commandName); //tolua_export
-        std::string getBinding(std::string commandName, unsigned int index); //tolua_export
-        unsigned int getNumberOfBindings(std::string commandName); //tolua_export
+        const std::string& getBinding(const std::string& commandName); //tolua_export
+        const std::string& getBinding(const std::string& commandName, unsigned int index); //tolua_export
+        unsigned int getNumberOfBindings(const std::string& commandName); //tolua_export
 
         const std::string& getBindingsFilename()
@@ -160,5 +160,5 @@
 
     private:
-        void addButtonToCommand(std::string command, Button* button);
+        void addButtonToCommand(const std::string& command, Button* button);
 
         //##### ConfigValues #####
Index: /code/branches/presentation2/src/libraries/core/input/KeyDetector.cc
===================================================================
--- /code/branches/presentation2/src/libraries/core/input/KeyDetector.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/core/input/KeyDetector.cc	(revision 6394)
@@ -67,5 +67,5 @@
         for (std::map<std::string, Button*>::const_iterator it = allButtons_.begin(); it != allButtons_.end(); ++it)
         {
-            it->second->bindingString_ = callbackCommand_s + " " + it->second->groupName_ + "." + it->second->name_;
+            it->second->bindingString_ = callbackCommand_s + ' ' + it->second->groupName_ + "." + it->second->name_;
             it->second->parse();
         }
Index: /code/branches/presentation2/src/libraries/network/Client.cc
===================================================================
--- /code/branches/presentation2/src/libraries/network/Client.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/network/Client.cc	(revision 6394)
@@ -139,5 +139,5 @@
     {
       timeSinceLastUpdate_ -= static_cast<unsigned int>( timeSinceLastUpdate_ / NETWORK_PERIOD ) * NETWORK_PERIOD;
-      //     COUT(3) << ".";
+      //     COUT(3) << '.';
       if ( isConnected() && isSynched_ )
       {
Index: /code/branches/presentation2/src/libraries/network/GamestateClient.cc
===================================================================
--- /code/branches/presentation2/src/libraries/network/GamestateClient.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/network/GamestateClient.cc	(revision 6394)
@@ -137,5 +137,5 @@
     COUT(4) << "gamestates: ";
     for(it=gamestateMap_.begin(); it!=gamestateMap_.end(); it++){
-      COUT(4) << it->first << ":" << it->second << "|";
+      COUT(4) << it->first << ':' << it->second << '|';
     }
     COUT(4) << std::endl;
Index: /code/branches/presentation2/src/libraries/network/packet/ClassID.cc
===================================================================
--- /code/branches/presentation2/src/libraries/network/packet/ClassID.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/network/packet/ClassID.cc	(revision 6394)
@@ -48,5 +48,4 @@
 ClassID::ClassID( ) : Packet(){
   Identifier *id;
-  std::string classname;
   unsigned int nrOfClasses=0;
   unsigned int packetSize=2*sizeof(uint32_t); //space for the packetID and for the nrofclasses
@@ -61,5 +60,5 @@
     if(id == NULL || !id->hasFactory())
       continue;
-    classname = id->getName();
+    const std::string& classname = id->getName();
     network_id = id->getNetworkID();
     // now push the network id and the classname to the stack
Index: /code/branches/presentation2/src/libraries/network/packet/DeleteObjects.cc
===================================================================
--- /code/branches/presentation2/src/libraries/network/packet/DeleteObjects.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/network/packet/DeleteObjects.cc	(revision 6394)
@@ -72,5 +72,5 @@
     unsigned int temp = Synchronisable::popDeletedObject();
     *reinterpret_cast<uint32_t*>(tdata) = temp;
-    COUT(4) << temp << " ";
+    COUT(4) << temp << ' ';
     tdata += sizeof(uint32_t);
   }
Index: /code/branches/presentation2/src/libraries/network/packet/FunctionIDs.cc
===================================================================
--- /code/branches/presentation2/src/libraries/network/packet/FunctionIDs.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/network/packet/FunctionIDs.cc	(revision 6394)
@@ -47,5 +47,4 @@
 
 FunctionIDs::FunctionIDs( ) : Packet(){
-  std::string functionname;
   unsigned int nrOfFunctions=0;
   unsigned int packetSize=2*sizeof(uint32_t); //space for the packetID and for the nroffunctions
@@ -57,5 +56,5 @@
   ObjectList<NetworkFunctionBase>::iterator it;
   for(it = ObjectList<NetworkFunctionBase>::begin(); it; ++it){
-    functionname = it->getName();
+    const std::string& functionname = it->getName();
     networkID = it->getNetworkID();
     // now push the network id and the classname to the stack
Index: /code/branches/presentation2/src/libraries/network/packet/Gamestate.cc
===================================================================
--- /code/branches/presentation2/src/libraries/network/packet/Gamestate.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/network/packet/Gamestate.cc	(revision 6394)
@@ -529,5 +529,5 @@
 //   COUT(0) << "myvector contains:";
 //   for ( itt=dataVector_.begin() ; itt!=dataVector_.end(); itt++ )
-//     COUT(0) << " " << (*itt).objID;
+//     COUT(0) << ' ' << (*itt).objID;
 //   COUT(0) << endl;
   for(it=dataVector_.begin(); it!=dataVector_.end();){
Index: /code/branches/presentation2/src/libraries/tools/BillboardSet.cc
===================================================================
--- /code/branches/presentation2/src/libraries/tools/BillboardSet.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/tools/BillboardSet.cc	(revision 6394)
@@ -38,5 +38,4 @@
 #include "util/Convert.h"
 #include "util/Math.h"
-#include "util/StringUtils.h"
 #include "core/GameMode.h"
 
@@ -81,5 +80,5 @@
         catch (...)
         {
-            COUT(1) << "Error: Couln't load billboard \"" << file << "\"" << std::endl;
+            COUT(1) << "Error: Couln't load billboard \"" << file << '"' << std::endl;
             this->billboardSet_ = 0;
         }
@@ -104,5 +103,5 @@
         catch (...)
         {
-            COUT(1) << "Error: Couln't load billboard \"" << file << "\"" << std::endl;
+            COUT(1) << "Error: Couln't load billboard \"" << file << '"' << std::endl;
             this->billboardSet_ = 0;
         }
Index: /code/branches/presentation2/src/libraries/tools/Mesh.cc
===================================================================
--- /code/branches/presentation2/src/libraries/tools/Mesh.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/tools/Mesh.cc	(revision 6394)
@@ -36,5 +36,4 @@
 
 #include "util/Convert.h"
-#include "util/StringUtils.h"
 #include "core/GameMode.h"
 
@@ -84,5 +83,5 @@
             catch (...)
             {
-                COUT(1) << "Error: Couln't load mesh \"" << meshsource << "\"" << std::endl;
+                COUT(1) << "Error: Couln't load mesh \"" << meshsource << '"' << std::endl;
                 this->entity_ = 0;
             }
Index: /code/branches/presentation2/src/libraries/tools/ParticleInterface.cc
===================================================================
--- /code/branches/presentation2/src/libraries/tools/ParticleInterface.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/tools/ParticleInterface.cc	(revision 6394)
@@ -78,5 +78,5 @@
             catch (...)
             {
-                COUT(1) << "Error: Couln't load particle system \"" << templateName << "\"" << std::endl;
+                COUT(1) << "Error: Couln't load particle system \"" << templateName << '"' << std::endl;
                 this->particleSystem_ = 0;
             }
Index: /code/branches/presentation2/src/libraries/tools/ResourceLocation.cc
===================================================================
--- /code/branches/presentation2/src/libraries/tools/ResourceLocation.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/tools/ResourceLocation.cc	(revision 6394)
@@ -92,5 +92,5 @@
     {
         // Remove from Ogre paths
-        resourceGroup_.erase();
+        resourceGroup_.clear();
         try
         {
Index: /code/branches/presentation2/src/libraries/tools/Shader.cc
===================================================================
--- /code/branches/presentation2/src/libraries/tools/Shader.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/tools/Shader.cc	(revision 6394)
@@ -57,6 +57,4 @@
         this->bLoadCompositor_ = GameMode::showsGraphics();
         this->bViewportInitialized_ = false;
-        this->compositor_ = "";
-        this->oldcompositor_ = "";
 
         if (this->bLoadCompositor_ && Ogre::Root::getSingletonPtr())
@@ -111,10 +109,10 @@
             Ogre::Viewport* viewport = GraphicsManager::getInstance().getViewport();
             assert(viewport);
-            if (this->oldcompositor_ != "")
+            if (!this->oldcompositor_.empty())
             {
                 Ogre::CompositorManager::getSingleton().removeCompositor(viewport, this->oldcompositor_);
                 this->compositorInstance_ = 0;
             }
-            if (this->compositor_ != "")
+            if (!this->compositor_.empty())
             {
                 this->compositorInstance_ = Ogre::CompositorManager::getSingleton().addCompositor(viewport, this->compositor_);
@@ -298,5 +296,5 @@
                         continue;
 
-                    if (pass_pointer->getFragmentProgramName() != "")
+                    if (!pass_pointer->getFragmentProgramName().empty())
                     {
                         Ogre::GpuProgramParameters* parameter_pointer = pass_pointer->getFragmentProgramParameters().get();
Index: /code/branches/presentation2/src/libraries/tools/TextureGenerator.cc
===================================================================
--- /code/branches/presentation2/src/libraries/tools/TextureGenerator.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/tools/TextureGenerator.cc	(revision 6394)
@@ -72,5 +72,5 @@
         if (it == colourMap.end())
         {
-            std::string materialName = textureName + "_Material_" + multi_cast<std::string>(materialCount_s++);
+            const std::string& materialName = textureName + "_Material_" + multi_cast<std::string>(materialCount_s++);
             Ogre::MaterialPtr material = static_cast<Ogre::MaterialPtr>(Ogre::MaterialManager::getSingleton().create(materialName, "General"));
             material->getTechnique(0)->getPass(0)->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
Index: /code/branches/presentation2/src/libraries/util/Clipboard.cc
===================================================================
--- /code/branches/presentation2/src/libraries/util/Clipboard.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/Clipboard.cc	(revision 6394)
@@ -78,5 +78,5 @@
         {
             COUT(1) << "Error: Unable to copy the following text to the clipboard:" << std::endl;
-            COUT(1) << "       \"" << text << "\"" << std::endl;
+            COUT(1) << "       \"" << text << '"' << std::endl;
         }
         return false;
@@ -96,5 +96,5 @@
                 if (hData == NULL)
                     return "";
-                std::string output = static_cast<char*>(GlobalLock(hData));
+                std::string output(static_cast<char*>(GlobalLock(hData)));
                 GlobalUnlock(hData);
                 CloseClipboard();
@@ -119,5 +119,5 @@
 namespace orxonox
 {
-    static std::string clipboard = ""; //!< Keeps the text of our internal clipboard
+    static std::string clipboard; //!< Keeps the text of our internal clipboard
 
     /**
Index: /code/branches/presentation2/src/libraries/util/Convert.h
===================================================================
--- /code/branches/presentation2/src/libraries/util/Convert.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/Convert.h	(revision 6394)
@@ -43,5 +43,4 @@
 
 #include "Debug.h"
-#include "StringUtils.h"
 #include "TemplateUtils.h"
 
@@ -336,5 +335,5 @@
         FORCEINLINE static bool convert(std::string* output, const char input)
         {
-            *output = std::string(1, input);
+            *output = input;
             return true;
         }
@@ -345,5 +344,5 @@
         FORCEINLINE static bool convert(std::string* output, const unsigned char input)
         {
-            *output = std::string(1, input);
+            *output = input;
             return true;
         }
@@ -352,7 +351,7 @@
     struct ConverterExplicit<std::string, char>
     {
-        FORCEINLINE static bool convert(char* output, const std::string input)
-        {
-            if (input != "")
+        FORCEINLINE static bool convert(char* output, const std::string& input)
+        {
+            if (!input.empty())
                 *output = input[0];
             else
@@ -364,7 +363,7 @@
     struct ConverterExplicit<std::string, unsigned char>
     {
-        FORCEINLINE static bool convert(unsigned char* output, const std::string input)
-        {
-            if (input != "")
+        FORCEINLINE static bool convert(unsigned char* output, const std::string& input)
+        {
+            if (!input.empty())
                 *output = input[0];
             else
@@ -389,4 +388,8 @@
     };
 
+    // Declarations to avoid StringUtils.h include
+    _UtilExport std::string removeTrailingWhitespaces(const std::string& str);
+    _UtilExport std::string getLowercase(const std::string& str);
+
     // std::string to bool
     template <>
@@ -395,14 +398,14 @@
         static bool convert(bool* output, const std::string& input)
         {
-            std::string stripped = getLowercase(removeTrailingWhitespaces(input));
+            const std::string& stripped = getLowercase(removeTrailingWhitespaces(input));
             if (stripped == "true" || stripped == "on" || stripped == "yes")
             {
-              *output = true;
-              return true;
+                *output = true;
+                return true;
             }
             else if (stripped == "false" || stripped == "off" || stripped == "no")
             {
-              *output = false;
-              return true;
+                *output = false;
+                return true;
             }
 
Index: /code/branches/presentation2/src/libraries/util/Exception.cc
===================================================================
--- /code/branches/presentation2/src/libraries/util/Exception.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/Exception.cc	(revision 6394)
@@ -49,6 +49,4 @@
         : description_(description)
         , lineNumber_(0)
-        , functionName_("")
-        , filename_("")
     { }
 
@@ -61,5 +59,5 @@
     const std::string& Exception::getFullDescription() const
     {
-        if (fullDescription_ == "")
+        if (fullDescription_.empty())
         {
             std::ostringstream fullDesc;
@@ -67,21 +65,21 @@
             fullDesc << this->getTypeName() << "Exception";
 
-            if (this->filename_ != "")
+            if (!this->filename_.empty())
             {
                 fullDesc << " in " << this->filename_;
                 if (this->lineNumber_)
-                    fullDesc << "(" << this->lineNumber_ << ")";
+                    fullDesc << '(' << this->lineNumber_ << ')';
             }
 
-            if (this->functionName_ != "")
-                fullDesc << " in function '" << this->functionName_ << "'";
+            if (!this->functionName_.empty())
+                fullDesc << " in function '" << this->functionName_ << '\'';
 
             fullDesc << ": ";
-            if (this->description_ != "")
+            if (!this->description_.empty())
                 fullDesc << this->description_;
             else
                 fullDesc << "No description available.";
 
-            this->fullDescription_ = std::string(fullDesc.str());
+            this->fullDescription_ = fullDesc.str();
         }
 
Index: /code/branches/presentation2/src/libraries/util/Math.h
===================================================================
--- /code/branches/presentation2/src/libraries/util/Math.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/Math.h	(revision 6394)
@@ -165,5 +165,5 @@
     template <> inline bool                 zeroise<bool>()                 { return 0; }
     template <> inline void*                zeroise<void*>()                { return 0; }
-    template <> inline std::string          zeroise<std::string>()          { return ""; }
+    template <> inline std::string          zeroise<std::string>()          { return std::string(); }
     template <> inline orxonox::Radian      zeroise<orxonox::Radian>()      { return orxonox::Radian(0.0f); }
     template <> inline orxonox::Degree      zeroise<orxonox::Degree>()      { return orxonox::Degree(0.0f); }
Index: /code/branches/presentation2/src/libraries/util/MathConvert.h
===================================================================
--- /code/branches/presentation2/src/libraries/util/MathConvert.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/MathConvert.h	(revision 6394)
@@ -53,5 +53,5 @@
         {
             std::ostringstream ostream;
-            if (ostream << input.x << "," << input.y)
+            if (ostream << input.x << ',' << input.y)
             {
                 (*output) = ostream.str();
@@ -69,5 +69,5 @@
         {
             std::ostringstream ostream;
-            if (ostream << input.x << "," << input.y << "," << input.z)
+            if (ostream << input.x << ',' << input.y << ',' << input.z)
             {
                 (*output) = ostream.str();
@@ -85,5 +85,5 @@
         {
             std::ostringstream ostream;
-            if (ostream << input.x << "," << input.y << "," << input.z << "," << input.w)
+            if (ostream << input.x << ',' << input.y << ',' << input.z << ',' << input.w)
             {
                 (*output) = ostream.str();
@@ -101,5 +101,5 @@
         {
             std::ostringstream ostream;
-            if (ostream << input.w << "," << input.x << "," << input.y << "," << input.z)
+            if (ostream << input.w << ',' << input.x << ',' << input.y << ',' << input.z)
             {
                 (*output) = ostream.str();
@@ -117,5 +117,5 @@
         {
             std::ostringstream ostream;
-            if (ostream << input.r << "," << input.g << "," << input.b << "," << input.a)
+            if (ostream << input.r << ',' << input.g << ',' << input.b << ',' << input.a)
             {
                 (*output) = ostream.str();
Index: /code/branches/presentation2/src/libraries/util/OutputHandler.cc
===================================================================
--- /code/branches/presentation2/src/libraries/util/OutputHandler.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/OutputHandler.cc	(revision 6394)
@@ -77,5 +77,5 @@
 #ifdef ORXONOX_PLATFORM_WINDOWS
             char* pTempDir = getenv("TEMP");
-            this->logFilename_ = std::string(pTempDir) + "/" + logFileBaseName_g;
+            this->logFilename_ = std::string(pTempDir) + '/' + logFileBaseName_g;
 #else
             this->logFilename_ = std::string("/tmp/") + logFileBaseName_g;
Index: /code/branches/presentation2/src/libraries/util/StringUtils.cc
===================================================================
--- /code/branches/presentation2/src/libraries/util/StringUtils.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/StringUtils.cc	(revision 6394)
@@ -40,5 +40,5 @@
 namespace orxonox
 {
-    std::string BLANKSTRING("");
+    std::string BLANKSTRING;
 
     std::string getUniqueNumberString()
@@ -54,9 +54,9 @@
     {
         size_t pos;
-        while ((pos = (*str).find(" ")) < (*str).length())
+        while ((pos = (*str).find(' ')) < (*str).length())
             (*str).erase(pos, 1);
-        while ((pos = (*str).find("\t")) < (*str).length())
+        while ((pos = (*str).find('\t')) < (*str).length())
             (*str).erase(pos, 1);
-        while ((pos = (*str).find("\n")) < (*str).length())
+        while ((pos = (*str).find('\n')) < (*str).length())
             (*str).erase(pos, 1);
     }
@@ -69,5 +69,5 @@
     std::string getStripped(const std::string& str)
     {
-        std::string output = std::string(str);
+        std::string output(str);
         strip(&output);
         return output;
@@ -98,5 +98,5 @@
         size_t quote = start - 1;
 
-        while ((quote = str.find('\"', quote + 1)) != std::string::npos)
+        while ((quote = str.find('"', quote + 1)) != std::string::npos)
         {
             size_t backslash = quote;
@@ -231,5 +231,5 @@
     {
         // Strip the line, whitespaces are disturbing
-        std::string teststring = getStripped(str);
+        const std::string& teststring = getStripped(str);
 
         // There are four possible comment-symbols:
@@ -259,6 +259,5 @@
     bool isEmpty(const std::string& str)
     {
-        std::string temp = getStripped(str);
-        return ((temp == "") || (temp.size() == 0));
+        return getStripped(str).empty();
     }
 
@@ -303,5 +302,5 @@
         for (size_t pos = 0; (pos = output.find('\f', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\f"); }
         for (size_t pos = 0; (pos = output.find('\a', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\a"); }
-        for (size_t pos = 0; (pos = output.find('"', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\\""); }
+        for (size_t pos = 0; (pos = output.find('"' , pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\\""); }
         for (size_t pos = 0; (pos = output.find('\0', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\0"); }
 
@@ -319,5 +318,5 @@
             return str;
 
-        std::string output = "";
+        std::string output;
         for (size_t pos = 0; pos < str.size() - 1; )
         {
@@ -363,5 +362,5 @@
     std::string getLowercase(const std::string& str)
     {
-        std::string output = std::string(str);
+        std::string output(str);
         lowercase(&output);
         return output;
@@ -387,5 +386,5 @@
     std::string getUppercase(const std::string& str)
     {
-        std::string output = std::string(str);
+        std::string output(str);
         uppercase(&output);
         return output;
Index: /code/branches/presentation2/src/libraries/util/SubString.cc
===================================================================
--- /code/branches/presentation2/src/libraries/util/SubString.cc	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/SubString.cc	(revision 6394)
@@ -270,8 +270,5 @@
         }
         else
-        {
-            static std::string empty;
-            return empty;
-        }
+            return "";
     }
 
Index: /code/branches/presentation2/src/libraries/util/UtilPrereqs.h
===================================================================
--- /code/branches/presentation2/src/libraries/util/UtilPrereqs.h	(revision 6393)
+++ /code/branches/presentation2/src/libraries/util/UtilPrereqs.h	(revision 6394)
@@ -131,3 +131,10 @@
 }
 
+// Just so you don't have to include StringUtils.h everywhere just for this
+namespace orxonox
+{
+    extern _UtilExport std::string BLANKSTRING;
+}
+
+
 #endif /* _UtilPrereqs_H__ */
Index: /code/branches/presentation2/src/modules/objects/Attacher.cc
===================================================================
--- /code/branches/presentation2/src/modules/objects/Attacher.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/objects/Attacher.cc	(revision 6394)
@@ -98,5 +98,5 @@
         this->target_ = 0;
 
-        if (this->targetname_ == "")
+        if (this->targetname_.empty())
             return;
 
@@ -113,5 +113,5 @@
     void Attacher::loadedNewXMLName(BaseObject* object)
     {
-        if (this->target_ || this->targetname_ == "")
+        if (this->target_ || this->targetname_.empty())
             return;
 
Index: /code/branches/presentation2/src/modules/objects/eventsystem/EventFilter.cc
===================================================================
--- /code/branches/presentation2/src/modules/objects/eventsystem/EventFilter.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/objects/eventsystem/EventFilter.cc	(revision 6394)
@@ -62,5 +62,5 @@
         if (this->bActive_)
         {
-            COUT(2) << "Warning: Detected Event loop in EventFilter \"" << this->getName() << "\"" << std::endl;
+            COUT(2) << "Warning: Detected Event loop in EventFilter \"" << this->getName() << '"' << std::endl;
             return;
         }
Index: /code/branches/presentation2/src/modules/objects/eventsystem/EventListener.cc
===================================================================
--- /code/branches/presentation2/src/modules/objects/eventsystem/EventListener.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/objects/eventsystem/EventListener.cc	(revision 6394)
@@ -58,5 +58,5 @@
         if (this->bActive_)
         {
-            COUT(2) << "Warning: Detected Event loop in EventListener \"" << this->getName() << "\"" << std::endl;
+            COUT(2) << "Warning: Detected Event loop in EventListener \"" << this->getName() << '"' << std::endl;
             return;
         }
@@ -71,5 +71,5 @@
         this->eventName_ = eventname;
 
-        if (this->eventName_ == "")
+        if (this->eventName_.empty())
             return;
 
@@ -81,5 +81,5 @@
     void EventListener::loadedNewXMLName(BaseObject* object)
     {
-        if (this->eventName_ == "")
+        if (this->eventName_.empty())
             return;
 
Index: /code/branches/presentation2/src/modules/objects/eventsystem/EventTarget.cc
===================================================================
--- /code/branches/presentation2/src/modules/objects/eventsystem/EventTarget.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/objects/eventsystem/EventTarget.cc	(revision 6394)
@@ -60,5 +60,5 @@
         if (this->bActive_)
         {
-            COUT(2) << "Warning: Detected Event loop in EventTarget \"" << this->getName() << "\"" << std::endl;
+            COUT(2) << "Warning: Detected Event loop in EventTarget \"" << this->getName() << '"' << std::endl;
             return;
         }
@@ -80,5 +80,5 @@
     void EventTarget::loadedNewXMLName(BaseObject* object)
     {
-        if (this->target_ == "")
+        if (this->target_.empty())
             return;
 
Index: /code/branches/presentation2/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- /code/branches/presentation2/src/modules/objects/triggers/DistanceTrigger.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/objects/triggers/DistanceTrigger.cc	(revision 6394)
@@ -92,5 +92,5 @@
     if (!targetId)
     {
-        COUT(1) << "Error: \"" << targets << "\" is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ")" << std::endl;
+        COUT(1) << "Error: \"" << targets << "\" is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ')' << std::endl;
         return;
     }
Index: /code/branches/presentation2/src/modules/objects/triggers/Trigger.cc
===================================================================
--- /code/branches/presentation2/src/modules/objects/triggers/Trigger.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/objects/triggers/Trigger.cc	(revision 6394)
@@ -280,11 +280,11 @@
   {
     if (this->mode_ == TriggerMode::EventTriggerAND)
-      return std::string("and");
+      return "and";
     else if (this->mode_ == TriggerMode::EventTriggerOR)
-      return std::string("or");
+      return "or";
     else if (this->mode_ == TriggerMode::EventTriggerXOR)
-      return std::string("xor");
+      return "xor";
     else
-      return std::string("and");
+      return "and";
   }
 
Index: /code/branches/presentation2/src/modules/overlays/GUIOverlay.cc
===================================================================
--- /code/branches/presentation2/src/modules/overlays/GUIOverlay.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/GUIOverlay.cc	(revision 6394)
@@ -69,8 +69,7 @@
         if (this->isVisible())
         {
-            std::string str;
-            std::stringstream out;
+            std::ostringstream out;
             out << reinterpret_cast<long>(this);
-            str = out.str();
+            const std::string& str = out.str();
             COUT(1) << "GUIManager ptr: " << str << std::endl;
             GUIManager::getInstance().showGUIExtra(this->guiName_, str);
Index: /code/branches/presentation2/src/modules/overlays/OverlayText.cc
===================================================================
--- /code/branches/presentation2/src/modules/overlays/OverlayText.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/OverlayText.cc	(revision 6394)
@@ -134,5 +134,5 @@
     void OverlayText::setFont(const std::string& font)
     {
-        if (font != "")
+        if (!font.empty())
             this->text_->setFontName(font);
     }
Index: /code/branches/presentation2/src/modules/overlays/hud/HUDBar.cc
===================================================================
--- /code/branches/presentation2/src/modules/overlays/hud/HUDBar.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/hud/HUDBar.cc	(revision 6394)
@@ -72,5 +72,5 @@
 
         // create new material
-        std::string materialname = "barmaterial" + multi_cast<std::string>(materialcount_s++);
+        const std::string& materialname = "barmaterial" + multi_cast<std::string>(materialcount_s++);
         Ogre::MaterialPtr material = static_cast<Ogre::MaterialPtr>(Ogre::MaterialManager::getSingleton().create(materialname, "General"));
         material->getTechnique(0)->getPass(0)->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
Index: /code/branches/presentation2/src/modules/overlays/hud/HUDHealthBar.h
===================================================================
--- /code/branches/presentation2/src/modules/overlays/hud/HUDHealthBar.h	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/hud/HUDHealthBar.h	(revision 6394)
@@ -53,5 +53,5 @@
 
             inline void setTextFont(const std::string& font)
-                { if (font != "") { this->textoverlay_->setFont(font); } }
+                { if (!font.empty()) { this->textoverlay_->setFont(font); } }
             inline const std::string& getTextFont() const
                 { return this->textoverlay_->getFont(); }
Index: /code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- /code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc	(revision 6394)
@@ -36,5 +36,4 @@
 
 #include "util/Math.h"
-#include "util/StringUtils.h"
 #include "util/Convert.h"
 #include "core/CoreIncludes.h"
@@ -108,5 +107,5 @@
     void HUDNavigation::setFont(const std::string& font)
     {
-        if (this->navText_ && font != "")
+        if (this->navText_ && !font.empty())
             this->navText_->setFontName(font);
     }
Index: /code/branches/presentation2/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- /code/branches/presentation2/src/modules/overlays/hud/HUDRadar.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/hud/HUDRadar.cc	(revision 6394)
@@ -126,5 +126,5 @@
             panel = *itRadarDots_;
             ++itRadarDots_;
-            std::string materialName = TextureGenerator::getMaterialName(
+            const std::string& materialName = TextureGenerator::getMaterialName(
                 shapeMaterials_[object->getRadarObjectShape()], object->getRadarObjectColour());
             if (materialName != panel->getMaterialName())
Index: /code/branches/presentation2/src/modules/overlays/hud/TeamBaseMatchScore.cc
===================================================================
--- /code/branches/presentation2/src/modules/overlays/hud/TeamBaseMatchScore.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/overlays/hud/TeamBaseMatchScore.cc	(revision 6394)
@@ -71,9 +71,9 @@
         if (this->owner_)
         {
-            std::string bases1 = "(" + multi_cast<std::string>(this->owner_->getTeamBases(0)) + ")";
-            std::string bases2 = "(" + multi_cast<std::string>(this->owner_->getTeamBases(1)) + ")";
+            const std::string& bases1 = '(' + multi_cast<std::string>(this->owner_->getTeamBases(0)) + ')';
+            const std::string& bases2 = '(' + multi_cast<std::string>(this->owner_->getTeamBases(1)) + ')';
 
-            std::string score1 = multi_cast<std::string>(this->owner_->getTeamPoints(0));
-            std::string score2 = multi_cast<std::string>(this->owner_->getTeamPoints(1));
+            const std::string& score1 = multi_cast<std::string>(this->owner_->getTeamPoints(0));
+            const std::string& score2 = multi_cast<std::string>(this->owner_->getTeamPoints(1));
 
             std::string output1;
@@ -99,9 +99,9 @@
             }
 
-            std::string output = "";
+            std::string output;
             if (this->bShowBases_ || this->bShowScore_)
             {
                 if (this->bShowLeftTeam_ && this->bShowRightTeam_)
-                    output = output1 + ":" + output2;
+                    output = output1 + ':' + output2;
                 else if (this->bShowLeftTeam_ || this->bShowRightTeam_)
                     output = output1 + output2;
Index: /code/branches/presentation2/src/modules/pong/PongScore.cc
===================================================================
--- /code/branches/presentation2/src/modules/pong/PongScore.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/pong/PongScore.cc	(revision 6394)
@@ -77,6 +77,6 @@
             std::string name2;
 
-            std::string score1 = "0";
-            std::string score2 = "0";
+            std::string score1("0");
+            std::string score2("0");
 
             if (player1)
@@ -114,9 +114,9 @@
             }
 
-            std::string output = "PONG";
+            std::string output("PONG");
             if (this->bShowName_ || this->bShowScore_)
             {
                 if (this->bShowLeftPlayer_ && this->bShowRightPlayer_)
-                    output = output1 + ":" + output2;
+                    output = output1 + ':' + output2;
                 else if (this->bShowLeftPlayer_ || this->bShowRightPlayer_)
                     output = output1 + output2;
Index: /code/branches/presentation2/src/modules/questsystem/QuestDescription.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/QuestDescription.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/QuestDescription.cc	(revision 6394)
@@ -50,7 +50,4 @@
     {
         RegisterObject(QuestDescription);
-
-        this->title_ = "";
-        this->description_ = "";
     }
 
@@ -94,8 +91,8 @@
     bool QuestDescription::notificationHelper(const std::string & item, const std::string & status) const
     {
-        std::string message = "";
+        std::string message;
         if(item == "hint")
         {
-            message = "You received a hint: '" + this->title_ + "'";
+            message = "You received a hint: '" + this->title_ + '\'';
         }
         else if(item == "quest")
@@ -103,13 +100,13 @@
             if(status == "start")
             {
-                message = "You received a new quest: '" + this->title_ + "'";
+                message = "You received a new quest: '" + this->title_ + '\'';
             }
             else if(status == "fail")
             {
-                message = "You failed the quest: '" + this->title_ + "'";
+                message = "You failed the quest: '" + this->title_ + '\'';
             }
             else if(status == "complete")
             {
-                message = "You successfully completed the quest: '" + this->title_ + "'";
+                message = "You successfully completed the quest: '" + this->title_ + '\'';
             }
             else
Index: /code/branches/presentation2/src/modules/questsystem/QuestGUINode.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/QuestGUINode.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/QuestGUINode.cc	(revision 6394)
@@ -134,9 +134,9 @@
         if(this->window_ != NULL)
         {
-            buffer = (std::string)(this->window_->getName().c_str());
+            buffer = this->window_->getName().c_str();
         }
         else
         {
-            buffer = "";
+            buffer.erase();
         }
     }
@@ -187,5 +187,5 @@
                 CEGUI::Window* statusWindow = this->gui_->getWindowManager()->createWindow("TaharezLook/StaticText", stream.str());
                 window->addChildWindow(statusWindow);
-                std::string status = "";
+                std::string status;
                 if(quest->isActive(this->gui_->getPlayer()))
                 {
Index: /code/branches/presentation2/src/modules/questsystem/QuestItem.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/QuestItem.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/QuestItem.cc	(revision 6394)
@@ -47,6 +47,4 @@
     {
         RegisterObject(QuestItem);
-
-        this->id_ = "";
     }
 
Index: /code/branches/presentation2/src/modules/questsystem/QuestListener.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/QuestListener.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/QuestListener.cc	(revision 6394)
@@ -183,5 +183,5 @@
         {
             COUT(1) << "An unforseen, never to happen, Error has occurred. This is impossible!" << std::endl;
-        return "";
+            return "";
         }
     }
Index: /code/branches/presentation2/src/modules/questsystem/QuestNotification.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/QuestNotification.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/QuestNotification.cc	(revision 6394)
@@ -32,5 +32,5 @@
 namespace orxonox {
 
-    const std::string QuestNotification::SENDER = "questsystem";
+    const std::string QuestNotification::SENDER("questsystem");
 
     QuestNotification::QuestNotification(BaseObject* creator) : Notification(creator)
Index: /code/branches/presentation2/src/modules/questsystem/notifications/Notification.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/notifications/Notification.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/notifications/Notification.cc	(revision 6394)
@@ -75,5 +75,5 @@
     void Notification::initialize(void)
     {
-        this->message_ = "";
+        this->message_.clear();
         this->sender_ = NotificationManager::NONE;
         this->sent_ = false;
Index: /code/branches/presentation2/src/modules/questsystem/notifications/NotificationManager.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/notifications/NotificationManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/notifications/NotificationManager.cc	(revision 6394)
@@ -44,6 +44,6 @@
 {
 
-    const std::string NotificationManager::ALL = "all";
-    const std::string NotificationManager::NONE = "none";
+    const std::string NotificationManager::ALL("all");
+    const std::string NotificationManager::NONE("none");
 
     ManageScopedSingleton(NotificationManager, ScopeID::Root, false);
Index: /code/branches/presentation2/src/modules/questsystem/notifications/NotificationQueue.cc
===================================================================
--- /code/branches/presentation2/src/modules/questsystem/notifications/NotificationQueue.cc	(revision 6393)
+++ /code/branches/presentation2/src/modules/questsystem/notifications/NotificationQueue.cc	(revision 6394)
@@ -46,7 +46,7 @@
     CreateFactory(NotificationQueue);
 
-    const std::string NotificationQueue::DEFAULT_FONT = "VeraMono";
-    const Vector2 NotificationQueue::DEFAULT_POSITION = Vector2(0.0,0.0);
-    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025f;
+    const std::string NotificationQueue::DEFAULT_FONT("VeraMono");
+    const Vector2 NotificationQueue::DEFAULT_POSITION(0.0,0.0);
+    const float NotificationQueue::DEFAULT_FONT_SIZE = 0.025f;
 
     /**
@@ -271,5 +271,5 @@
             if(!first)
             {
-                *string += ",";
+                *string += ',';
             }
             else
@@ -300,5 +300,5 @@
         while( index < targets.size() ) //!< Go through the string, character by character until the end is reached.
         {
-            pTemp = new std::string("");
+            pTemp = new std::string();
             while(index < targets.size() && targets[index] != ',' && targets[index] != ' ')
             {
@@ -399,5 +399,5 @@
         std::ostringstream stream;
         stream << reinterpret_cast<unsigned long>(notification);
-        std::string addressString = stream.str() ;
+        const std::string& addressString = stream.str();
         container->name = "NotificationOverlay(" + timeString + ")&" + addressString;
 
Index: /code/branches/presentation2/src/orxonox/Level.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/Level.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/Level.cc	(revision 6394)
@@ -141,5 +141,5 @@
     void Level::playerEntered(PlayerInfo* player)
     {
-        COUT(3) << "player entered level (id: " << player->getClientID() << ", name: " << player->getName() << ")" << std::endl;
+        COUT(3) << "player entered level (id: " << player->getClientID() << ", name: " << player->getName() << ')' << std::endl;
         player->setGametype(this->getGametype());
     }
@@ -147,5 +147,5 @@
     void Level::playerLeft(PlayerInfo* player)
     {
-        COUT(3) << "player left level (id: " << player->getClientID() << ", name: " << player->getName() << ")" << std::endl;
+        COUT(3) << "player left level (id: " << player->getClientID() << ", name: " << player->getName() << ')' << std::endl;
         player->setGametype(0);
     }
Index: /code/branches/presentation2/src/orxonox/LevelManager.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/LevelManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/LevelManager.cc	(revision 6394)
@@ -122,8 +122,8 @@
     }
 
-    std::string LevelManager::getAvailableLevelListItem(unsigned int index) const
+    const std::string& LevelManager::getAvailableLevelListItem(unsigned int index) const
     {
         if (index >= availableLevels_.size())
-            return std::string();
+            return BLANKSTRING;
         else
             return availableLevels_[index];
Index: /code/branches/presentation2/src/orxonox/LevelManager.h
===================================================================
--- /code/branches/presentation2/src/orxonox/LevelManager.h	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/LevelManager.h	(revision 6394)
@@ -60,5 +60,5 @@
             const std::string& getDefaultLevel() const; //tolua_export
             void compileAvailableLevelList(); //tolua_export
-            std::string getAvailableLevelListItem(unsigned int index) const; //tolua_export
+            const std::string& getAvailableLevelListItem(unsigned int index) const; //tolua_export
 
             static LevelManager* getInstancePtr() { return singletonPtr_s; }
Index: /code/branches/presentation2/src/orxonox/Radar.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/Radar.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/Radar.cc	(revision 6394)
@@ -85,5 +85,5 @@
     }
 
-    RadarViewable::Shape Radar::addObjectDescription(const std::string name)
+    RadarViewable::Shape Radar::addObjectDescription(const std::string& name)
     {
         std::map<std::string, RadarViewable::Shape>::iterator it = this->objectTypes_.find(name);
Index: /code/branches/presentation2/src/orxonox/Radar.h
===================================================================
--- /code/branches/presentation2/src/orxonox/Radar.h	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/Radar.h	(revision 6394)
@@ -55,5 +55,5 @@
 
         const RadarViewable* getFocus();
-        RadarViewable::Shape addObjectDescription(const std::string name);
+        RadarViewable::Shape addObjectDescription(const std::string& name);
 
         void listObjects() const;
Index: /code/branches/presentation2/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/gamestates/GSLevel.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/gamestates/GSLevel.cc	(revision 6394)
@@ -154,5 +154,5 @@
             if (find == this->staticObjects_.end())
             {
-                COUT(3) << ++i << ": " << it->getIdentifier()->getName() << " (" << *it << ")" << std::endl;
+                COUT(3) << ++i << ": " << it->getIdentifier()->getName() << " (" << *it << ')' << std::endl;
             }
         }
Index: /code/branches/presentation2/src/orxonox/gametypes/Asteroids.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/gametypes/Asteroids.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/gametypes/Asteroids.cc	(revision 6394)
@@ -72,5 +72,5 @@
         Gametype::start();
 
-        std::string message = "The match has started! Reach the first chekpoint within 15 seconds! But be aware, there may be pirates around...";
+        std::string message("The match has started! Reach the first chekpoint within 15 seconds! But be aware, there may be pirates around...");
         COUT(0) << message << std::endl;
         Host::Broadcast(message);
@@ -81,5 +81,5 @@
         Gametype::end();
 
-        std::string message = "The match has ended.";
+        std::string message("The match has ended.");
         COUT(0) << message << std::endl;
         Host::Broadcast(message);
Index: /code/branches/presentation2/src/orxonox/gametypes/Deathmatch.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/gametypes/Deathmatch.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/gametypes/Deathmatch.cc	(revision 6394)
@@ -47,5 +47,5 @@
         Gametype::start();
 
-        std::string message = "The match has started!";
+        std::string message("The match has started!");
         COUT(0) << message << std::endl;
         Host::Broadcast(message);
@@ -56,5 +56,5 @@
         Gametype::end();
 
-        std::string message = "The match has ended.";
+        std::string message("The match has ended.");
         COUT(0) << message << std::endl;
         Host::Broadcast(message);
@@ -65,5 +65,5 @@
         Gametype::playerEntered(player);
 
-        std::string message = player->getName() + " entered the game";
+        const std::string& message = player->getName() + " entered the game";
         COUT(0) << message << std::endl;
         Host::Broadcast(message);
@@ -76,5 +76,5 @@
         if (valid_player)
         {
-            std::string message = player->getName() + " left the game";
+            const std::string& message = player->getName() + " left the game";
             COUT(0) << message << std::endl;
             Host::Broadcast(message);
@@ -90,5 +90,5 @@
         if (valid_player)
         {
-            std::string message = player->getOldName() + " changed name to " + player->getName();
+            const std::string& message = player->getOldName() + " changed name to " + player->getName();
             COUT(0) << message << std::endl;
             Host::Broadcast(message);
@@ -126,5 +126,5 @@
         if (player)
         {
-            std::string message = player->getName() + " scores!";
+            const std::string& message = player->getName() + " scores!";
             COUT(0) << message << std::endl;
             Host::Broadcast(message);
Index: /code/branches/presentation2/src/orxonox/gametypes/Gametype.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/gametypes/Gametype.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/gametypes/Gametype.cc	(revision 6394)
@@ -71,5 +71,5 @@
 
         // load the corresponding score board
-        if (GameMode::showsGraphics() && this->scoreboardTemplate_ != "")
+        if (GameMode::showsGraphics() && !this->scoreboardTemplate_.empty())
         {
             this->scoreboard_ = new OverlayGroup(this);
Index: /code/branches/presentation2/src/orxonox/gametypes/UnderAttack.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/gametypes/UnderAttack.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/gametypes/UnderAttack.cc	(revision 6394)
@@ -69,5 +69,5 @@
     {
         this->end(); //end gametype
-        std::string message = "Ship destroyed! Team 0 has won!";
+        std::string message("Ship destroyed! Team 0 has won!");
         COUT(0) << message << std::endl;
         Host::Broadcast(message);
@@ -152,5 +152,5 @@
                 this->gameEnded_ = true;
                 this->end();
-                std::string message = "Time is up! Team 1 has won!";
+                std::string message("Time is up! Team 1 has won!");
                 COUT(0) << message << std::endl;
                 Host::Broadcast(message);
@@ -171,5 +171,5 @@
             if ( gameTime_ <= timesequence_ && gameTime_ > 0)
             {
-                std::string message = multi_cast<std::string>(timesequence_) + " seconds left!";
+                const std::string& message = multi_cast<std::string>(timesequence_) + " seconds left!";
 /*
                 COUT(0) << message << std::endl;
Index: /code/branches/presentation2/src/orxonox/graphics/Billboard.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/graphics/Billboard.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/graphics/Billboard.cc	(revision 6394)
@@ -42,5 +42,4 @@
         RegisterObject(Billboard);
 
-        this->material_ = "";
         this->colour_ = ColourValue::White;
 //        this->rotation_ = 0;
@@ -76,5 +75,5 @@
     void Billboard::changedMaterial()
     {
-        if (this->material_ == "")
+        if (this->material_.empty())
             return;
 
@@ -99,5 +98,5 @@
         {
 /*
-            if (this->getScene() && GameMode::showsGraphics() && (this->material_ != ""))
+            if (this->getScene() && GameMode::showsGraphics() && !this->material_.empty())
             {
                 this->billboard_.setBillboardSet(this->getScene()->getSceneManager(), this->material_, this->colour_, 1);
Index: /code/branches/presentation2/src/orxonox/infos/HumanPlayer.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/infos/HumanPlayer.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/infos/HumanPlayer.cc	(revision 6394)
@@ -164,5 +164,5 @@
         if (this->isInitialized() && this->isLocalPlayer())
         {
-            if (this->getGametype() && this->getGametype()->getHUDTemplate() != "")
+            if (this->getGametype() && !this->getGametype()->getHUDTemplate().empty())
                 this->setGametypeHUDTemplate(this->getGametype()->getHUDTemplate());
             else
@@ -179,5 +179,5 @@
         }
 
-        if (this->isLocalPlayer() && this->humanHudTemplate_ != "" && GameMode::showsGraphics())
+        if (this->isLocalPlayer() && !this->humanHudTemplate_.empty() && GameMode::showsGraphics())
         {
             this->humanHud_ = new OverlayGroup(this);
@@ -195,5 +195,5 @@
         }
 
-        if (this->isLocalPlayer() && this->gametypeHudTemplate_ != "")
+        if (this->isLocalPlayer() && !this->gametypeHudTemplate_.empty())
         {
             this->gametypeHud_ = new OverlayGroup(this);
Index: /code/branches/presentation2/src/orxonox/items/Engine.h
===================================================================
--- /code/branches/presentation2/src/orxonox/items/Engine.h	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/items/Engine.h	(revision 6394)
@@ -106,6 +106,4 @@
             virtual const Vector3& getDirection() const;
 
-            void loadSound(const std::string filename);
-
         private:
             void networkcallback_shipID();
Index: /code/branches/presentation2/src/orxonox/items/MultiStateEngine.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/items/MultiStateEngine.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/items/MultiStateEngine.cc	(revision 6394)
@@ -35,5 +35,4 @@
 
 #include "util/Convert.h"
-#include "util/StringUtils.h"
 #include "core/CoreIncludes.h"
 #include "core/GameMode.h"
@@ -201,5 +200,5 @@
         if (effect == NULL)
             return;
-        effect->setLuaState(this->lua_, "f" + multi_cast<std::string>(this->effectContainers_.size()));
+        effect->setLuaState(this->lua_, 'f' + multi_cast<std::string>(this->effectContainers_.size()));
         this->effectContainers_.push_back(effect);
         if (this->getShip())
Index: /code/branches/presentation2/src/orxonox/overlays/InGameConsole.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/overlays/InGameConsole.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/overlays/InGameConsole.cc	(revision 6394)
@@ -318,5 +318,5 @@
             this->print(this->shell_->getInput(), Shell::Input, 0);
 
-        if (this->shell_->getInput() == "" || this->shell_->getInput().size() == 0)
+        if (this->shell_->getInput().empty())
             this->inputWindowStart_ = 0;
     }
Index: /code/branches/presentation2/src/orxonox/overlays/Map.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/overlays/Map.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/overlays/Map.cc	(revision 6394)
@@ -49,4 +49,5 @@
 #include <OgreViewport.h>
 
+#include "util/StringUtils.h"
 #include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
Index: /code/branches/presentation2/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 6394)
@@ -45,5 +45,4 @@
 #include "util/Convert.h"
 #include "util/Exception.h"
-#include "util/StringUtils.h"
 #include "core/GameMode.h"
 #include "core/CoreIncludes.h"
@@ -146,5 +145,5 @@
 
         if (OrxonoxOverlay::overlays_s.find(this->getName()) != OrxonoxOverlay::overlays_s.end())
-            COUT(1) << "Overlay names should be unique or you cannnot access them via console. Name: \"" << this->getName() << "\"" << std::endl;
+            COUT(1) << "Overlay names should be unique or you cannnot access them via console. Name: \"" << this->getName() << '"' << std::endl;
 
         OrxonoxOverlay::overlays_s[this->getName()] = this;
@@ -154,5 +153,5 @@
     void OrxonoxOverlay::setBackgroundMaterial(const std::string& material)
     {
-        if (this->background_ && material != "")
+        if (this->background_ && !material.empty())
             this->background_->setMaterialName(material);
     }
Index: /code/branches/presentation2/src/orxonox/pickup/DroppedItem.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/pickup/DroppedItem.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/pickup/DroppedItem.cc	(revision 6394)
@@ -83,5 +83,5 @@
         if (this->item_)
         {
-            COUT(3) << "Delete DroppedItem with '" << this->item_->getPickupIdentifier() << "'" << std::endl;
+            COUT(3) << "Delete DroppedItem with '" << this->item_->getPickupIdentifier() << '\'' << std::endl;
             this->item_->destroy();
         }
@@ -112,5 +112,5 @@
         drop->createTimer();
 
-        COUT(3) << "Created DroppedItem for '" << item->getPickupIdentifier() << "' at (" << position.x << "," << position.y << "," << position.z << ")." << std::endl;
+        COUT(3) << "Created DroppedItem for '" << item->getPickupIdentifier() << "' at (" << position.x << ',' << position.y << ',' << position.z << ")." << std::endl;
 
         return drop;
Index: /code/branches/presentation2/src/orxonox/pickup/PickupInventory.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/pickup/PickupInventory.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/pickup/PickupInventory.cc	(revision 6394)
@@ -196,5 +196,5 @@
             return "";
 
-        std::string name = "pickup_" + item->getGUIImage();
+        const std::string& name = "pickup_" + item->getGUIImage();
 
         if(!CEGUI::ImagesetManager::getSingletonPtr()->isImagesetPresent(name))
@@ -203,5 +203,5 @@
         }
 
-        return "set:" + name + " image:full_image";
+        return ("set:" + name + " image:full_image");
     }
 
@@ -332,7 +332,7 @@
         txt->setVisible(true);
         txt->setProperty("Text", item->getGUIText());
-        txt->setProperty("TextColours", "tl:" + textColour + " tr:" + textColour + " bl:" + textColour + " br:" + textColour + "");
-
-        std::string image = PickupInventory::getImageForItem(item);
+        txt->setProperty("TextColours", "tl:" + textColour + " tr:" + textColour + " bl:" + textColour + " br:" + textColour);
+
+        const std::string& image = PickupInventory::getImageForItem(item);
         btn->setVisible(true);
         btn->setProperty("NormalImage", image);
Index: /code/branches/presentation2/src/orxonox/sound/AmbientSound.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/sound/AmbientSound.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/sound/AmbientSound.cc	(revision 6394)
@@ -113,5 +113,5 @@
         if (GameMode::playsSound())
         {
-            std::string path = "ambient/" + MoodManager::getInstance().getMood() + "/" + source;
+            const std::string& path = "ambient/" + MoodManager::getInstance().getMood() + '/' + source;
             shared_ptr<ResourceInfo> fileInfo = Resource::getInfo(path);
             if (fileInfo != NULL)
Index: /code/branches/presentation2/src/orxonox/sound/SoundBuffer.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/sound/SoundBuffer.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/sound/SoundBuffer.cc	(revision 6394)
@@ -57,5 +57,5 @@
         DataStreamPtr dataStream = Resource::open(fileInfo);
 
-        std::string extension(this->filename_.substr(this->filename_.find_last_of('.') + 1));
+        const std::string& extension = this->filename_.substr(this->filename_.find_last_of('.') + 1);
         if (getLowercase(extension) == "ogg")
         {
Index: /code/branches/presentation2/src/orxonox/sound/SoundManager.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/sound/SoundManager.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/sound/SoundManager.cc	(revision 6394)
@@ -92,5 +92,5 @@
         {
             this->deviceNames_.push_back(devices);
-            COUT(4) << "\"" << devices << "\", ";
+            COUT(4) << '"' << devices << "\", ";
             devices += strlen(devices) + 1;
             if (*devices == '\0')
@@ -100,5 +100,5 @@
 
         // Open the selected device
-        COUT(3) << "Sound: Opening device \"" << renderDevice << "\"" << std::endl;
+        COUT(3) << "Sound: Opening device \"" << renderDevice << '\' << std::endl;
         this->device_ = alcOpenDevice(renderDevice.c_str());
 */
Index: /code/branches/presentation2/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/weaponsystem/WeaponMode.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/weaponsystem/WeaponMode.cc	(revision 6394)
@@ -30,5 +30,4 @@
 #include "WeaponMode.h"
 
-#include "util/StringUtils.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
Index: /code/branches/presentation2/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/worldentities/ControllableEntity.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/worldentities/ControllableEntity.cc	(revision 6394)
@@ -333,5 +333,5 @@
             this->camera_ = new Camera(this);
             this->camera_->requestFocus();
-            if (this->cameraPositionTemplate_ != "")
+            if (!this->cameraPositionTemplate_.empty())
                 this->addTemplate(this->cameraPositionTemplate_);
             if (this->cameraPositions_.size() > 0)
@@ -349,5 +349,5 @@
         if (!this->hud_ && GameMode::showsGraphics())
         {
-            if (this->hudtemplate_ != "")
+            if (!this->hudtemplate_.empty())
             {
                 this->hud_ = new OverlayGroup(this);
Index: /code/branches/presentation2/src/orxonox/worldentities/WorldEntity.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/worldentities/WorldEntity.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/worldentities/WorldEntity.cc	(revision 6394)
@@ -814,5 +814,5 @@
     void WorldEntity::setCollisionTypeStr(const std::string& typeStr)
     {
-        std::string typeStrLower = getLowercase(typeStr);
+        const std::string& typeStrLower = getLowercase(typeStr);
         CollisionType type;
         if (typeStrLower == "dynamic")
Index: /code/branches/presentation2/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/worldentities/pawns/Pawn.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/worldentities/pawns/Pawn.cc	(revision 6394)
@@ -199,5 +199,5 @@
     {
         // play spawn effect
-        if (this->spawnparticlesource_ != "")
+        if (!this->spawnparticlesource_.empty())
         {
             ParticleSpawner* effect = new ParticleSpawner(this->getCreator());
Index: /code/branches/presentation2/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- /code/branches/presentation2/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 6393)
+++ /code/branches/presentation2/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 6394)
@@ -187,5 +187,5 @@
     void SpaceShip::loadEngineTemplate()
     {
-        if (this->enginetemplate_ != "")
+        if (!this->enginetemplate_.empty())
         {
             Template* temp = Template::getTemplate(this->enginetemplate_);
