diff --git a/src/mission.c b/src/mission.c
index 2a2886c..5d86650 100644
--- a/src/mission.c
+++ b/src/mission.c
@@ -11,6 +11,7 @@
 #include "mission.h"
 
 // Current player missions.
+static unsigned int mission_id = 0;
 Mission player_missions[MISSION_MAX];
 
 // Mission stack.
@@ -35,6 +36,7 @@ int mission_create(MissionData* misn) {
   // No missions left.
   if(i >= MISSION_MAX) return -1;
 
+  player_missions[i].id = ++mission_id;
   player_missions[i].data = misn;
 
   // Init lua.
@@ -42,6 +44,12 @@ int mission_create(MissionData* misn) {
   luaopen_string(player_missions[i].L); // String.format can be useful..
   misn_loadLibs(player_missions[i].L);  // Load our custom libraries.
 
+  lua_getglobal(player_missions[i].L, "create");
+  if(lua_pcall(player_missions[i].L, 0, 0, 0))
+    // Error accured.
+    WARN("Mission '%s' -> 'create': %s",
+        misn->name, lua_tostring(player_missions[i].L, -1));
+
   return 0;
 }