Index: trunk/src/lib/util/executor/executor.cc
===================================================================
--- trunk/src/lib/util/executor/executor.cc	(revision 5658)
+++ trunk/src/lib/util/executor/executor.cc	(revision 5659)
@@ -59,5 +59,8 @@
   // What Parameters we have got
   for (unsigned int i = 0; i < paramCount; i++)
-    this->defaultValue[i].setType(va_arg(parameterList, int));
+  {
+    int type = va_arg(parameterList, int);
+    this->defaultValue[i].setType(type);
+  }
 }
 
@@ -79,5 +82,8 @@
   executor->defaultValue = new MultiType[this->paramCount];
   for (unsigned int i = 0; i < this->paramCount; i++)
-    executor->defaultValue[i] = this->defaultValue[i];
+  {
+    executor->defaultValue[i] =  this->defaultValue[i];
+//    printf("1: %s 2: %s\n", MultiType::MultiTypeToString(this->defaultValue[i].getType()),  MultiType::MultiTypeToString(executor->defaultValue[i].getType()));
+  }
 }
 
Index: trunk/src/lib/util/executor/executor_specials.h
===================================================================
--- trunk/src/lib/util/executor/executor_specials.h	(revision 5658)
+++ trunk/src/lib/util/executor/executor_specials.h	(revision 5659)
@@ -28,5 +28,5 @@
      */
     ExecutorXML(void(T::*function)(const TiXmlElement*), const TiXmlElement* root, const char* paramName)
-      : Executor(1)
+      : Executor(1, MT_EXT1)
     {
       PRINTF(4)("Loading %s from XML-element %p\n", paramName, root);
Index: trunk/src/lib/util/multi_type.cc
===================================================================
--- trunk/src/lib/util/multi_type.cc	(revision 5658)
+++ trunk/src/lib/util/multi_type.cc	(revision 5659)
@@ -17,9 +17,14 @@
 
 #include "multi_type.h"
-#include "stdincl.h"
-// #include <stddef.h>
-// #include <stdlib.h>
-// #include <string.h>
-// #include <stdio.h>
+
+//#include "stdincl.h"
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#ifdef DEBUG
+#include "debug.h"
+#endif
 
 using namespace std;
@@ -80,4 +85,11 @@
   this->init();
   this->setString(value);
+}
+
+MultiType::MultiType(const MultiType& multiType)
+{
+  this->init();
+  printf("test2");
+  *this = multiType;
 }
 
@@ -96,19 +108,18 @@
  * @returns a Copy of itself. (strings inside are copied as well)
  */
-// MultiType MultiType::operator= (const MultiType& mt)
-// {
-//   this->type = mt.type;
-//   this->value = mt.value;
-//
-//   if (mt.type == MT_STRING && mt.storedString != NULL)
-//   {
-//     this->storedString = new char[strlen (mt.storedString)+1];
-//     strcpy(this->storedString, mt.storedString);
-//     this->value.String = this->storedString;
-//   }
-//   else
-//     this->storedString = NULL;
-//   return *this;
-// }
+MultiType& MultiType::operator= (const MultiType& mt)
+{
+  this->type = mt.type;
+  this->value = mt.value;
+
+  printf("test\n");
+  if (mt.type == MT_STRING && mt.storedString != NULL)
+  {
+    this->setString(mt.storedString);
+  }
+  else
+    this->storedString = NULL;
+  return *this;
+}
 
 /**
@@ -119,5 +130,5 @@
   this->type = MT_NULL;
   this->storedString = NULL;
-  this->value.Bool = false;
+  this->value.Float = 0.0f;
 }
 
@@ -130,10 +141,5 @@
 {
   if (this->type != type)
-  {
     this->type = (MT_Type)type;
-
-    if (this->type == MT_NULL)
-      this->reset();
-  }
 }
 
@@ -336,5 +342,10 @@
 void MultiType::debug()
 {
-  printf("MultiType of Type: %s is: BOOL: %d, INT: %d, FLOAT: %f, CHAR: %c, STRING %s\n",
+#ifdef DEBUG
+  PRINT(0)
+#else
+  printf
+#endif
+      ("MultiType of Type '%s' :: Values: BOOL: '%d', INT: '%d', FLOAT: '%f', CHAR: '%c', STRING '%s'\n",
          MultiType::MultiTypeToString(this->type),
          this->getBool(),
@@ -343,5 +354,5 @@
          this->getChar(),
          this->getString()
-  );
+      );
 
 
@@ -353,8 +364,6 @@
 void MultiType::reset()
 {
-  switch (this->type)
-  {
-    default:
-      break;
+  switch ( this->type )
+  {
     case MT_BOOL:
       this->setBool(false);
@@ -371,4 +380,9 @@
       this->setString("");
       break;
+    default:
+#ifdef DEBUG
+      PRINTF(2)("Unknown Type not reseting\n");
+#endif
+      break;
   }
 }
@@ -381,5 +395,5 @@
 const char* MultiType::MultiTypeToString(MT_Type type)
 {
-  switch (type)
+  switch ( type )
   {
    default:
Index: trunk/src/lib/util/multi_type.h
===================================================================
--- trunk/src/lib/util/multi_type.h	(revision 5658)
+++ trunk/src/lib/util/multi_type.h	(revision 5659)
@@ -39,7 +39,8 @@
     MultiType(char value);
     MultiType(const char* value);
+    MultiType(const MultiType& multiType);
     virtual ~MultiType();
 
-//    MultiType operator= (const MultiType& mt);
+    MultiType& operator= (const MultiType& mt);
 
     void setType(int type);
@@ -80,5 +81,5 @@
 
   private:
-    MT_Type             type;
+
     union MultiTypeValue
     {
@@ -91,4 +92,6 @@
     }                   value;
 
+    MT_Type             type;
+
     char*               storedString;
 };
