diff --git a/epicardium/ble/ble.c b/epicardium/ble/ble.c
index a6f840f76b6ca14fb6d3a9dd8942a81cccd86d3a..5e6fa1cb4427aa8cb89c1e751966dee264e24f3f 100644
--- a/epicardium/ble/ble.c
+++ b/epicardium/ble/ble.c
@@ -244,10 +244,18 @@ void vBleTask(void *pvParameters)
 	vTaskDelay(pdMS_TO_TICKS(500));
 
 	WsfInit();
+	taskENTER_CRITICAL();
+	/* Critical section to prevent a loop in iq_capture2 / meas_freq in
+	 * /home/maxim/Documents/src/BLE/mcbusw/Hardware/Micro/ME14/Firmware/trunk/NDALibraries/BTLE/phy/dbb/prot/ble/pan2g5/afe/max32665/board_config.c:275
+	 * if BHI160 and -Ddebug_prints=true is enabled*/
 	StackInit();
+	taskEXIT_CRITICAL();
 	BbBleDrvSetTxPower(0);
 	setAddress();
 
+	/* We are going to execute FreeRTOS functions from callbacks
+	 * coming from these interrupts. Their priority needs to be
+	 * reduced to allow this. */
 	NVIC_SetPriority(BTLE_SFD_TO_IRQn, 2);
 	NVIC_SetPriority(BTLE_TX_DONE_IRQn, 2);
 	NVIC_SetPriority(BTLE_RX_RCVD_IRQn, 2);