Index: branches/script_engine/src/lib/util/executor/executor.h
===================================================================
--- branches/script_engine/src/lib/util/executor/executor.h	(revision 8290)
+++ branches/script_engine/src/lib/util/executor/executor.h	(revision 8300)
@@ -33,5 +33,5 @@
  *  Objects of any Class (Templated)
  *  Default Values
- *  Functions with up to 5 parameters (more seems useless)
+ *  Functions with up to 5 parameters (more seems overhead, split up the function)
  *  Functions with many types (@see functor_list.h)
  */
Index: branches/script_engine/src/lib/util/executor/executor_functional.cc
===================================================================
--- branches/script_engine/src/lib/util/executor/executor_functional.cc	(revision 8290)
+++ branches/script_engine/src/lib/util/executor/executor_functional.cc	(revision 8300)
@@ -15,7 +15,5 @@
 
 #include "executor.h"
-
-std::string ExecutorFunctional_returningString_from;
-std::string ExecutorFunctional_returningString_default;
+std::string ExecutorFunctional_returningString_from[5];
 
 
@@ -32,5 +30,5 @@
 template<> float fromString<float>(const std::string& input, float defaultValue) { return isFloat(input, defaultValue); };
 template<> char fromString<char>(const std::string& input, char defaultValue) { return isInt(input, defaultValue); };
-template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return ExecutorFunctional_returningString_from = isString(input, defaultValue); };
+template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return (input.size() > 0) ? input : defaultValue; };
 
 
@@ -48,5 +46,5 @@
 template<> float getDefault<float>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getFloat(); };
 template<> char getDefault<char>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getChar(); };
-template<> const std::string& getDefault<const std::string&>(const MultiType* const defaultValues, unsigned int i) { return ExecutorFunctional_returningString_default = defaultValues[i].getString(); };
+template<> const std::string& getDefault<const std::string&>(const MultiType* const defaultValues, unsigned int i) { return ExecutorFunctional_returningString_from[i] = defaultValues[i].getString(); };
 
 
Index: branches/script_engine/src/lib/util/loading/load_param.cc
===================================================================
--- branches/script_engine/src/lib/util/loading/load_param.cc	(revision 8290)
+++ branches/script_engine/src/lib/util/loading/load_param.cc	(revision 8300)
@@ -29,7 +29,6 @@
  */
 CLoadParam::CLoadParam(const TiXmlElement* root, const std::string& paramName, BaseObject* object, Executor* executor, bool inLoadCycle)
-  :  paramName(paramName), object(object)
-{
-  this->object = object;
+  :  object(object), paramName(paramName)
+{
   this->inLoadCycle = inLoadCycle;
 
Index: branches/script_engine/src/lib/util/substring.h
===================================================================
--- branches/script_engine/src/lib/util/substring.h	(revision 8290)
+++ branches/script_engine/src/lib/util/substring.h	(revision 8300)
@@ -70,7 +70,7 @@
   inline unsigned int size() const { return this->strings.size(); };
   /** @param i the i'th String @returns the i'th string from the subset of Strings */
-const std::string& operator[](unsigned int i) const { return (i < this->strings.size()) ? this->strings[i] : emptyString;return this->getString(i); };
+  inline const std::string& operator[](unsigned int i) const { return (i < this->strings.size()) ? this->strings[i] : emptyString; };
   /** @param i the i'th String @returns the i'th string from the subset of Strings */
-  const std::string& getString(unsigned int i) const { return (*this)[i]; };
+  inline const std::string& getString(unsigned int i) const { return (*this)[i]; };
 
   // the almighty algorithm.
