diff --git a/targets/COMMON/Makefile.inc b/targets/COMMON/Makefile.inc
new file mode 100644
index 0000000000000000000000000000000000000000..49f62c3580e6313c42c704e8bd181dac67beae82
--- /dev/null
+++ b/targets/COMMON/Makefile.inc
@@ -0,0 +1,6 @@
+TARGETS_COMMON_DIR = $(OPENAIR_TARGETS)/COMMON
+
+TARGETS_COMMON_OBJS = $(TARGETS_COMMON_DIR)/create_tasks.o
+
+TARGETS_COMMON_incl = \
+    -I$(TARGETS_COMMON_DIR)
diff --git a/targets/COMMON/create_tasks.c b/targets/COMMON/create_tasks.c
new file mode 100644
index 0000000000000000000000000000000000000000..68bfb850f2c8fccddb00a9a6b04d2a2b95228df2
--- /dev/null
+++ b/targets/COMMON/create_tasks.c
@@ -0,0 +1,122 @@
+/*******************************************************************************
+
+ Eurecom OpenAirInterface
+ Copyright(c) 1999 - 2013 Eurecom
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms and conditions of the GNU General Public License,
+ version 2, as published by the Free Software Foundation.
+
+ This program is distributed in the hope it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+
+ The full GNU General Public License is included in this distribution in
+ the file called "COPYING".
+
+ Contact Information
+ Openair Admin: openair_admin@eurecom.fr
+ Openair Tech : openair_tech@eurecom.fr
+ Forums       : http://forums.eurecom.fr/openairinterface
+ Address      : EURECOM, Campus SophiaTech, 450 Route des Chappes
+ 06410 Biot FRANCE
+
+ *******************************************************************************/
+
+#if defined(ENABLE_ITTI)
+# include "intertask_interface.h"
+# include "create_tasks.h"
+# include "log.h"
+
+# ifdef OPENAIR2
+#   if defined(ENABLE_USE_MME)
+#     include "sctp_eNB_task.h"
+#     include "s1ap_eNB.h"
+#     include "nas_ue_task.h"
+#   endif
+#   include "RRC/LITE/defs.h"
+# endif
+# include "enb_app.h"
+
+int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
+{
+# ifdef OPENAIR2
+    {
+#   if defined(ENABLE_USE_MME)
+        {
+            if (enb_nb > 0)
+            {
+                if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0)
+                {
+                    LOG_E (EMU, "Create task failed");
+                    LOG_D (EMU, "Initializing SCTP task interface: FAILED\n");
+                    return -1;
+                }
+
+                if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0)
+                {
+                    LOG_E (EMU, "Create task failed");
+                    LOG_D (EMU, "Initializing S1AP task interface: FAILED\n");
+                    return -1;
+                }
+            }
+
+            if (ue_nb > 0)
+            {
+                if (itti_create_task (TASK_NAS_UE, nas_ue_task, NULL) < 0)
+                {
+                    LOG_E (EMU, "Create task failed");
+                    LOG_D (EMU, "Initializing NAS UE task interface: FAILED\n");
+                    return -1;
+                }
+            }
+        }
+#   endif
+
+        if (enb_nb > 0)
+        {
+            if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0)
+            {
+                LOG_E (EMU, "Create task failed");
+                LOG_D (EMU, "Initializing RRC eNB task interface: FAILED\n");
+                exit (-1);
+            }
+        }
+
+        if (ue_nb > 0)
+        {
+            if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0)
+            {
+                LOG_E (EMU, "Create task failed");
+                LOG_D (EMU, "Initializing RRC UE task interface: FAILED\n");
+                exit (-1);
+            }
+        }
+    }
+# endif
+
+    if (itti_create_task (TASK_L2L1, l2l1_task, NULL) < 0)
+    {
+        LOG_E (EMU, "Create task failed");
+        LOG_D (EMU, "Initializing L2L1 task interface: FAILED\n");
+        return -1;
+    }
+
+    if (enb_nb > 0)
+    {
+        /* Last task to create, others task must be ready before its start */
+        if (itti_create_task (TASK_ENB_APP, eNB_app_task, NULL) < 0)
+        {
+            LOG_E (EMU, "Create task failed");
+            LOG_D (EMU, "Initializing eNB APP task interface: FAILED\n");
+            return -1;
+        }
+    }
+    return 0;
+}
+#endif
diff --git a/targets/COMMON/create_tasks.h b/targets/COMMON/create_tasks.h
new file mode 100644
index 0000000000000000000000000000000000000000..56d968c303c194f0c84eddc18c7fb72127f69c09
--- /dev/null
+++ b/targets/COMMON/create_tasks.h
@@ -0,0 +1,41 @@
+/*******************************************************************************
+
+  Eurecom OpenAirInterface
+  Copyright(c) 1999 - 2013 Eurecom
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms and conditions of the GNU General Public License,
+  version 2, as published by the Free Software Foundation.
+
+  This program is distributed in the hope it will be useful, but WITHOUT
+  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+  more details.
+
+  You should have received a copy of the GNU General Public License along with
+  this program; if not, write to the Free Software Foundation, Inc.,
+  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+
+  The full GNU General Public License is included in this distribution in
+  the file called "COPYING".
+
+  Contact Information
+  Openair Admin: openair_admin@eurecom.fr
+  Openair Tech : openair_tech@eurecom.fr
+  Forums       : http://forums.eurecom.fr/openairinterface
+  Address      : EURECOM, Campus SophiaTech, 450 Route des Chappes
+                 06410 Biot FRANCE
+
+*******************************************************************************/
+
+#ifndef CREATE_TASKS_H_
+#define CREATE_TASKS_H_
+
+#if defined(ENABLE_ITTI)
+/* External declaration of L2L1 task that depend on the target */
+extern void *l2l1_task(void *arg);
+
+int create_tasks(uint32_t enb_nb, uint32_t ue_nb);
+#endif
+
+#endif /* CREATE_TASKS_H_ */