diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh
index f9fb3b776f2ed3cba130c1a27203c9d68888bd17..ad77d39eb785d39462d3b34a822843babdbe5b97 100755
--- a/ci-scripts/buildOnVM.sh
+++ b/ci-scripts/buildOnVM.sh
@@ -94,14 +94,21 @@ function build_on_vm {
         echo "############################################################"
         echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
         echo "############################################################"
+        acquire_vm_create_lock
         uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
-    fi
+        echo "Waiting for VM to be started"
+        uvt-kvm wait $VM_NAME --insecure
 
-    echo "Waiting for VM to be started"
-    uvt-kvm wait $VM_NAME --insecure
+        VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+        echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+        release_vm_create_lock
+    else
+        echo "Waiting for VM to be started"
+        uvt-kvm wait $VM_NAME --insecure
 
-    VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
-    echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+        VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+        echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+    fi
 
     echo "############################################################"
     echo "Copying GIT repo into VM ($VM_NAME)" 
diff --git a/ci-scripts/cppcheck_suppressions.list b/ci-scripts/cppcheck_suppressions.list
index d5aea7ae9d76b0230c9a8252d0653ee0e25876ae..007d8555e2a1f427d3e59b39948768bc2f0a9643 100644
--- a/ci-scripts/cppcheck_suppressions.list
+++ b/ci-scripts/cppcheck_suppressions.list
@@ -67,6 +67,15 @@ syntaxError:openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
 // omg, otg commented out in cmakelist to be cleaned up definitely?
 arrayIndexOutOfBounds:openair2/UTIL/OMG/omg.c
 uninitvar:openair2/UTIL/OTG/otg_rx_socket.c
+//-----------------------------------------------------------------------------
+// cppcheck is not able to understand that buf is initialized at the first
+// iteration of the loop.
+nullPointer:common/utils/T/local_tracer.c:243
+//-----------------------------------------------------------------------------
+// once again cppcheck is not to understand that fds is initialized in the
+// first iteration of the loop
+nullPointer:common/utils/T/tracer/multi.c:264
+nullPointer:common/utils/T/tracer/multi.c:265
 //
 //*****************************************************************************
 // 
diff --git a/ci-scripts/createVM.sh b/ci-scripts/createVM.sh
index 192008d86723d357f7a6dcb1d75674f3cf657377..e693b07b913eadbf5b17cca0754545c025b89e9d 100755
--- a/ci-scripts/createVM.sh
+++ b/ci-scripts/createVM.sh
@@ -49,6 +49,35 @@ function create_usage {
     echo ""
 }
 
+function acquire_vm_create_lock {
+    local FlockFile="/tmp/vmclone.lck"
+    local unlocked="0"
+    touch ${FlockFile} 2>/dev/null
+    if [[ $? -ne 0 ]]
+    then
+        echo "Cannot access lock file ${FlockFile}"
+        exit 2
+    fi
+    while [ $unlocked -eq 0 ]
+    do
+        exec 5>${FlockFile}
+        flock -nx 5
+        if [[ $? -ne 0 ]]
+        then
+            echo "Another instance of VM creation is running"
+            sleep 10
+        else
+            unlocked="1"
+        fi
+    done
+    chmod 666 ${FlockFile} 2>/dev/null
+}
+
+function release_vm_create_lock {
+    local FlockFile="/tmp/vmclone.lck"
+    rm -Rf ${FlockFile}
+}
+
 function create_vm {
     echo "############################################################"
     echo "OAI CI VM script"
@@ -60,10 +89,12 @@ function create_vm {
     echo "############################################################"
     echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
     echo "############################################################"
+    acquire_vm_create_lock
     uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
     echo "Waiting for VM to be started"
     uvt-kvm wait $VM_NAME --insecure
 
     VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
     echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+    release_vm_create_lock
 }
diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh
index 9aa6606eea8a7cf7c059942218d9fae727256380..b3eac341a9185e4ab0683aac12da219b3edcc547 100755
--- a/ci-scripts/runTestOnVM.sh
+++ b/ci-scripts/runTestOnVM.sh
@@ -317,11 +317,18 @@ function install_epc_on_vm {
         echo "############################################################"
         echo "Creating test EPC VM ($LOC_EPC_VM_NAME) on Ubuntu Cloud Image base"
         echo "############################################################"
+        acquire_vm_create_lock
         uvt-kvm create $LOC_EPC_VM_NAME release=xenial --unsafe-caching
+        echo "Waiting for VM to be started"
+        uvt-kvm wait $LOC_EPC_VM_NAME --insecure
+        release_vm_create_lock
+    else
+        echo "Waiting for VM to be started"
+        uvt-kvm wait $LOC_EPC_VM_NAME --insecure
     fi
 
-    uvt-kvm wait $LOC_EPC_VM_NAME --insecure
     local LOC_EPC_VM_IP_ADDR=`uvt-kvm ip $LOC_EPC_VM_NAME`
+
     echo "$LOC_EPC_VM_NAME has for IP addr = $LOC_EPC_VM_IP_ADDR"
     scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$LOC_EPC_VM_IP_ADDR:/home/ubuntu
 
diff --git a/common/utils/T/tracer/gui/notify.c b/common/utils/T/tracer/gui/notify.c
index 84fb161b6ee09421e20cb5231517fe9580dcc3d0..5798a0121985aa0535413bf1244e122bd1a08f90 100644
--- a/common/utils/T/tracer/gui/notify.c
+++ b/common/utils/T/tracer/gui/notify.c
@@ -46,7 +46,7 @@ void unregister_notifier(gui *_g, unsigned long notifier_id) {
     if (g->notifiers[i].id == notifier_id) break;
 
   if (i == g->notifiers_count)
-    ERR("%s:%d: notifier_id %ld not found\n", __FILE__,__LINE__,notifier_id);
+    ERR("%s:%d: notifier_id %lu not found\n", __FILE__,__LINE__,notifier_id);
 
   free(g->notifiers[i].notification);
   memmove(g->notifiers + i, g->notifiers + i + 1,
diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c
index a123bf9bf518b9104d224c5a3d849c5cc690e7af..f83cc7efd3c98a421641ec49cf50200eac1cd0b6 100644
--- a/common/utils/T/tracer/textlog.c
+++ b/common/utils/T/tracer/textlog.c
@@ -195,5 +195,8 @@ int main(int n, char **v)
     handle_event(h, e);
   }
 
+  free(on_off_name);
+  free(on_off_action);
+
   return 0;
 }
diff --git a/common/utils/T/tracer/utils.c b/common/utils/T/tracer/utils.c
index 2452254cf9167a4fbf6a4586e4370b58cdc5cae9..39e04fb9734cdd1ff8b3b7c5357a89489503fedd 100644
--- a/common/utils/T/tracer/utils.c
+++ b/common/utils/T/tracer/utils.c
@@ -273,6 +273,6 @@ void PUTX2(OBUF *o, int i) {
 
 void PUTUL(OBUF *o, unsigned long l) {
   char s[128];
-  sprintf(s, "%ld", l);
+  sprintf(s, "%lu", l);
   PUTS(o, s);
 }
diff --git a/openair1/PHY/TOOLS/lte_phy_scope_tm4.c b/openair1/PHY/TOOLS/lte_phy_scope_tm4.c
index 8dd41548ab3b62f915b1873acdfe84227fa425fe..5c7322e2e93963ef6a5413bbd0fcc31146892a26 100644
--- a/openair1/PHY/TOOLS/lte_phy_scope_tm4.c
+++ b/openair1/PHY/TOOLS/lte_phy_scope_tm4.c
@@ -812,9 +812,6 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
     free(bit1);
     free(bit_pdcch);
     free(llr_pdcch);
-    for (arx=0;arx<nb_antennas_rx;arx++) {
-        free(chest_t_abs[arx]);
-    }
 
     //This is done to avoid plotting old data when TB0 is disabled, and TB1 is mapped onto CW0
     /*if (phy_vars_ue->transmission_mode[eNB_id]==3 && phy_vars_ue->transmission_mode[eNB_id]==4){
diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c
index 03c0ea4fb2c077d2b5d06110eff9e6d917c06377..543ea9c511884d4dc952a39f6232a7941441e30f 100644
--- a/openair3/S1AP/s1ap_eNB_trace.c
+++ b/openair3/S1AP/s1ap_eNB_trace.c
@@ -107,7 +107,7 @@ int s1ap_eNB_handle_trace_start(uint32_t         assoc_id,
 {
     S1AP_TraceStart_t            *container;
     S1AP_TraceStartIEs_t         *ie;
-    struct s1ap_eNB_ue_context_s *ue_desc_p;
+    struct s1ap_eNB_ue_context_s *ue_desc_p = NULL;
     struct s1ap_eNB_mme_data_s   *mme_ref_p;
 
     DevAssert(pdu != NULL);
diff --git a/openair3/TEST/EPC_TEST/generate_scenario.c b/openair3/TEST/EPC_TEST/generate_scenario.c
index b8d9d9c5885d2a0c19eea56c0d1413db046e778e..b1a3297866078ea11efe7243d485c32cb102ef67 100644
--- a/openair3/TEST/EPC_TEST/generate_scenario.c
+++ b/openair3/TEST/EPC_TEST/generate_scenario.c
@@ -270,7 +270,7 @@ static void enb_config_display(void)
   printf( " ENB CONFIG FILE CONTENT LOADED:\n");
   printf( "----------------------------------------------------------------------\n");
   for (i = 0; i < g_enb_properties.number; i++) {
-    printf( "ENB CONFIG for instance %u:\n\n", i);
+    printf( "ENB CONFIG for instance %d:\n\n", i);
     printf( "\teNB name:           \t%s\n",g_enb_properties.properties[i]->eNB_name);
     printf( "\teNB ID:             \t%"PRIu32"\n",g_enb_properties.properties[i]->eNB_id);
     printf( "\tCell type:          \t%s\n",g_enb_properties.properties[i]->cell_type == CELL_MACRO_ENB ? "CELL_MACRO_ENB":"CELL_HOME_ENB");
diff --git a/openair3/TEST/EPC_TEST/play_scenario.c b/openair3/TEST/EPC_TEST/play_scenario.c
index 5928ab017f5f2370cd671fd9347c40a580a596e2..a50eac95cffc8048994d3e19ff510269eea4b466 100644
--- a/openair3/TEST/EPC_TEST/play_scenario.c
+++ b/openair3/TEST/EPC_TEST/play_scenario.c
@@ -1103,7 +1103,7 @@ et_config_parse_opt_line (
             fprintf(stderr, "Please provide a valid -D/--delay-on-exit argument, %s is not a valid value\n", delay_on_exit);
             exit(1);
           }
-          printf("Delay on exit is %u\n", delay_on_exit);
+          printf("Delay on exit is %d\n", (int) delay_on_exit);
         }
         break;