Index: code/branches/presentation2/src/libraries/util/Clipboard.cc
===================================================================
--- code/branches/presentation2/src/libraries/util/Clipboard.cc	(revision 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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 6392)
+++ 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__ */
