Index: code/branches/FICN/src/misc/Convert.h
===================================================================
--- code/branches/FICN/src/misc/Convert.h	(revision 723)
+++ code/branches/FICN/src/misc/Convert.h	(revision 724)
@@ -53,10 +53,10 @@
     */
     template <typename T>
-    static bool ToString(std::string& output, T input)
+    static bool ToString(std::string* output, T input)
     {
         std::ostringstream oss;
         if (oss << input)
         {
-            output = oss.str();
+            (*output) = oss.str();
             return true;
         }
@@ -78,10 +78,10 @@
     */
     template <typename T>
-    static bool ToString(std::string& output, T input, const std::string& fallbackString)
+    static bool ToString(std::string* output, T input, const std::string& fallbackString)
     {
         if (Convert::ToString(output, input))
             return true;
 
-        output = fallbackString;
+        (*output) = fallbackString;
         return false;
     }
@@ -99,8 +99,8 @@
     */
     template <typename T>
-    static bool FromString(T& output, const std::string& input)
+    static bool FromString(T* output, const std::string& input)
     {
         std::istringstream iss(input);
-        if (iss >> output)
+        if (iss >> (*output))
             return true;
 
@@ -121,10 +121,10 @@
     */
     template <typename T>
-    static bool FromString(T& output, const std::string& input, T fallbackValue)
+    static bool FromString(T* output, const std::string& input, T fallbackValue)
     {
         if (Convert::FromString(output, input))
             return true;
 
-        output = fallbackValue;
+        (*output) = fallbackValue;
         return false;
     }
Index: code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc	(revision 723)
+++ code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc	(revision 724)
@@ -50,5 +50,5 @@
         this->type_ = VT_Int;
 
-        Convert::ToString(this->defvalueString_, defvalue, "0");                    // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, defvalue, "0");                   // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -72,5 +72,5 @@
         this->type_ = VT_uInt;
 
-        Convert::ToString(this->defvalueString_, defvalue, "0");                    // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, defvalue, "0");                   // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -94,5 +94,5 @@
         this->type_ = VT_Char;
 
-        Convert::ToString(this->defvalueString_, (int)defvalue, "0");               // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, (int)defvalue, "0");              // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -116,5 +116,5 @@
         this->type_ = VT_uChar;
 
-        Convert::ToString(this->defvalueString_, (unsigned int)defvalue, "0");      // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, (unsigned int)defvalue, "0");     // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -138,5 +138,5 @@
         this->type_ = VT_Float;
 
-        Convert::ToString(this->defvalueString_, defvalue, "0.000000");             // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, defvalue, "0.000000");            // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -160,5 +160,5 @@
         this->type_ = VT_Double;
 
-        Convert::ToString(this->defvalueString_, defvalue, "0.000000");             // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, defvalue, "0.000000");            // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -182,5 +182,5 @@
         this->type_ = VT_LongDouble;
 
-        Convert::ToString(this->defvalueString_, defvalue, "0.000000");             // Try to convert the default-value to a string
+        Convert::ToString(&this->defvalueString_, defvalue, "0.000000");            // Try to convert the default-value to a string
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
@@ -384,5 +384,5 @@
     bool ConfigValueContainer::parseSting(const std::string& input, int defvalue)
     {
-        return Convert::FromString(this->value_.value_int_, input, defvalue);
+        return Convert::FromString(&this->value_.value_int_, input, defvalue);
     }
 
@@ -395,5 +395,5 @@
     bool ConfigValueContainer::parseSting(const std::string& input, unsigned int defvalue)
     {
-        return Convert::FromString(this->value_.value_uint_, input, defvalue);
+        return Convert::FromString(&this->value_.value_uint_, input, defvalue);
     }
 
@@ -407,5 +407,5 @@
     {
         // I used value_int_ instead of value_char_ to avoid number <-> char confusion in the config-file
-        return Convert::FromString(this->value_.value_int_, input, (int)defvalue);
+        return Convert::FromString(&this->value_.value_int_, input, (int)defvalue);
     }
 
@@ -419,5 +419,5 @@
     {
         // I used value_uint_ instead of value_uchar_ to avoid number <-> char confusion in the config-file
-        return Convert::FromString(this->value_.value_uint_, input, (unsigned int)defvalue);
+        return Convert::FromString(&this->value_.value_uint_, input, (unsigned int)defvalue);
     }
 
@@ -430,5 +430,5 @@
     bool ConfigValueContainer::parseSting(const std::string& input, float defvalue)
     {
-        return Convert::FromString(this->value_.value_float_, input, defvalue);
+        return Convert::FromString(&this->value_.value_float_, input, defvalue);
     }
 
@@ -441,5 +441,5 @@
     bool ConfigValueContainer::parseSting(const std::string& input, double defvalue)
     {
-        return Convert::FromString(this->value_.value_double_, input, defvalue);
+        return Convert::FromString(&this->value_.value_double_, input, defvalue);
     }
 
@@ -452,5 +452,5 @@
     bool ConfigValueContainer::parseSting(const std::string& input, long double defvalue)
     {
-        return Convert::FromString(this->value_.value_long_double_, input, defvalue);
+        return Convert::FromString(&this->value_.value_long_double_, input, defvalue);
     }
 
@@ -477,5 +477,5 @@
         {
             // Its not a known word - is it a number?
-            return Convert::FromString(this->value_.value_bool_, input, defvalue);
+            return Convert::FromString(&this->value_.value_bool_, input, defvalue);
         }
 
@@ -549,10 +549,10 @@
         {
             std::vector<std::string> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
-            if (!Convert::FromString(this->value_vector2_.x, tokens[0], defvalue.x))
+            if (!Convert::FromString(&this->value_vector2_.x, tokens[0], defvalue.x))
             {
                 this->value_vector2_ = defvalue;
                 return false;
             }
-            if (!Convert::FromString(this->value_vector2_.y, tokens[1], defvalue.y))
+            if (!Convert::FromString(&this->value_vector2_.y, tokens[1], defvalue.y))
             {
                 this->value_vector2_ = defvalue;
@@ -583,15 +583,15 @@
         {
             std::vector<std::string> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
-            if (!Convert::FromString(this->value_vector3_.x, tokens[0], defvalue.x))
+            if (!Convert::FromString(&this->value_vector3_.x, tokens[0], defvalue.x))
             {
                 this->value_vector3_ = defvalue;
                 return false;
             }
-            if (!Convert::FromString(this->value_vector3_.y, tokens[1], defvalue.y))
+            if (!Convert::FromString(&this->value_vector3_.y, tokens[1], defvalue.y))
             {
                 this->value_vector3_ = defvalue;
                 return false;
             }
-            if (!Convert::FromString(this->value_vector3_.z, tokens[2], defvalue.z))
+            if (!Convert::FromString(&this->value_vector3_.z, tokens[2], defvalue.z))
             {
                 this->value_vector3_ = defvalue;
@@ -622,20 +622,20 @@
         {
             std::vector<std::string> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
-            if (!Convert::FromString(this->value_colourvalue_.r, tokens[0], defvalue.r))
+            if (!Convert::FromString(&this->value_colourvalue_.r, tokens[0], defvalue.r))
             {
                 this->value_colourvalue_ = defvalue;
                 return false;
             }
-            if (!Convert::FromString(this->value_colourvalue_.g, tokens[1], defvalue.g))
+            if (!Convert::FromString(&this->value_colourvalue_.g, tokens[1], defvalue.g))
             {
                 this->value_colourvalue_ = defvalue;
                 return false;
             }
-            if (!Convert::FromString(this->value_colourvalue_.b, tokens[2], defvalue.b))
+            if (!Convert::FromString(&this->value_colourvalue_.b, tokens[2], defvalue.b))
             {
                 this->value_colourvalue_ = defvalue;
                 return false;
             }
-            if (!Convert::FromString(this->value_colourvalue_.a, tokens[3], defvalue.a))
+            if (!Convert::FromString(&this->value_colourvalue_.a, tokens[3], defvalue.a))
             {
                 this->value_colourvalue_ = defvalue;
