Index: trunk/src/lib/util/executor/executor_functional.h
===================================================================
--- trunk/src/lib/util/executor/executor_functional.h	(revision 9006)
+++ trunk/src/lib/util/executor/executor_functional.h	(revision 9406)
@@ -179,5 +179,5 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) );
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])));
   };
 
@@ -222,6 +222,6 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])));
   };
 
@@ -276,7 +276,7 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
-      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])),
+      (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])));
   };
 
@@ -333,8 +333,8 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
-      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)),
-      fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])),
+      (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])),
+      (sub.size() > 3) ? fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)) : (fromMulti<type3>(this->defaultValue[3])));
   };
 
@@ -392,9 +392,9 @@
   {
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
-      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
-      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)),
-      fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)),
-      fromString<type4>(sub[4], getDefault<type4>(this->defaultValue, 4)));
+      (sub.size() > 0) ? fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) : (fromMulti<type0>(this->defaultValue[0])),
+      (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])),
+      (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])),
+      (sub.size() > 3) ? fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)) : (fromMulti<type3>(this->defaultValue[3])),
+      (sub.size() > 4) ? fromString<type4>(sub[4], getDefault<type4>(this->defaultValue, 4)) : (fromMulti<type4>(this->defaultValue[4])));
   };
 
Index: trunk/src/lib/util/executor/functor_list.h
===================================================================
--- trunk/src/lib/util/executor/functor_list.h	(revision 9006)
+++ trunk/src/lib/util/executor/functor_list.h	(revision 9406)
@@ -135,4 +135,5 @@
 
   //! mixed values:
+  FUNCTOR_LIST(2)(l_STRING, l_INT);
   FUNCTOR_LIST(2)(l_STRING, l_FLOAT);
   FUNCTOR_LIST(2)(l_UINT, l_LONG);
