Index: branches/single_player_map/src/lib/util/executor/executor.cc
===================================================================
--- branches/single_player_map/src/lib/util/executor/executor.cc	(revision 8810)
+++ branches/single_player_map/src/lib/util/executor/executor.cc	(revision 8811)
@@ -31,5 +31,7 @@
                    const MultiType& param2,
                    const MultiType& param3,
-                   const MultiType& param4)
+                   const MultiType& param4,
+                   const MultiType& param5,
+                   const MultiType& param6)
 {
   this->setClassID(CL_EXECUTOR, "Executor");
@@ -41,4 +43,6 @@
   this->defaultValue[3] = param3;
   this->defaultValue[4] = param4;
+  this->defaultValue[5] = param5;
+  this->defaultValue[6] = param6;
 
   this->paramCount = 0;
@@ -83,5 +87,7 @@
                                   const MultiType& value2,
                                   const MultiType& value3,
-                                  const MultiType& value4)
+                                  const MultiType& value4,
+                                  const MultiType& value5,
+                                  const MultiType& value6)
 {
   if (this == NULL)
@@ -94,5 +100,6 @@
   value[3] = &value3;
   value[4] = &value4;
-
+  value[5] = &value5;
+  value[6] = &value6;
   for (unsigned int i = 0; i < this->paramCount; i++)
   {
Index: branches/single_player_map/src/lib/util/executor/executor.h
===================================================================
--- branches/single_player_map/src/lib/util/executor/executor.h	(revision 8810)
+++ branches/single_player_map/src/lib/util/executor/executor.h	(revision 8811)
@@ -47,5 +47,6 @@
     Executor* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
                             const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
-                            const MultiType& value4 = MT_NULL);
+                            const MultiType& value4 = MT_NULL, const MultiType& param5 = MT_NULL,
+                            const MultiType& param6 = MT_NULL);
     /** @param i the i'th defaultValue, @returns reference to the MultiType */
     inline MultiType& getDefaultValue(unsigned int i) { return defaultValue[i]; };
@@ -68,5 +69,6 @@
     Executor(const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
              const MultiType& param2 = MT_NULL, const MultiType& param3 = MT_NULL,
-             const MultiType& param4 = MT_NULL);
+             const MultiType& param4 = MT_NULL, const MultiType& param5 = MT_NULL,
+             const MultiType& param6 = MT_NULL);
 
     void cloning(Executor* executor) const;
@@ -75,5 +77,5 @@
     short                       functorType;      //!< The type of Function we've got (either static or objective).
     unsigned int                paramCount;       //!< the count of parameters.
-    MultiType                   defaultValue[5];  //!< Default Values.
+    MultiType                   defaultValue[7];  //!< Default Values.
 };
 
Index: branches/single_player_map/src/lib/util/executor/functor_list.h
===================================================================
--- branches/single_player_map/src/lib/util/executor/functor_list.h	(revision 8810)
+++ branches/single_player_map/src/lib/util/executor/functor_list.h	(revision 8811)
@@ -29,5 +29,5 @@
 
 //! defines the maximum count of arguments function pointers might have
-#define FUNCTOR_MAX_ARGUMENTS                5
+#define FUNCTOR_MAX_ARGUMENTS                7
 #include "multi_type.h"
 
Index: branches/single_player_map/src/world_entities/npcs/generic_npc.cc
===================================================================
--- branches/single_player_map/src/world_entities/npcs/generic_npc.cc	(revision 8810)
+++ branches/single_player_map/src/world_entities/npcs/generic_npc.cc	(revision 8811)
@@ -38,4 +38,9 @@
 CREATE_FACTORY(GenericNPC, CL_GENERIC_NPC);
 
+#include "script_class.h"
+CREATE_SCRIPTABLE_CLASS(GenericNPC, CL_GENERIC_NPC,
+                        addMethod("walkTo", ExecutorLua7ret<GenericNPC,float, float, float, float, float, float, float, float>(&GenericNPC::walkTo))
+                       );
+
 
 
@@ -52,4 +57,10 @@
 }
 
+
+GenericNPC::GenericNPC()
+  : NPC(NULL)
+{
+ 
+}
 
 /**
Index: branches/single_player_map/src/world_entities/npcs/generic_npc.h
===================================================================
--- branches/single_player_map/src/world_entities/npcs/generic_npc.h	(revision 8810)
+++ branches/single_player_map/src/world_entities/npcs/generic_npc.h	(revision 8811)
@@ -28,4 +28,5 @@
 {
  public:
+  GenericNPC();
   GenericNPC(const TiXmlElement* root);
   virtual ~GenericNPC ();
Index: branches/single_player_map/src/world_entities/npcs/npc.cc
===================================================================
--- branches/single_player_map/src/world_entities/npcs/npc.cc	(revision 8810)
+++ branches/single_player_map/src/world_entities/npcs/npc.cc	(revision 8811)
@@ -50,5 +50,6 @@
 void NPC::loadParams(const TiXmlElement* root)
 {
-  WorldEntity::loadParams(root);
+  if(root != NULL)
+   WorldEntity::loadParams(root);
 }
 
